Commit e0679d32 authored by Jérome Perrin's avatar Jérome Perrin

test_result: support test suite repositories named .*-repository

Their reference will not have the -repository prefix, so
TestResult_getTestSuiteData should do similar processing to find the
corresponding test suite repositories from reference.
parent bd14f3a6
master DateTime.equalTo_fix TMP-2to3 UpdateValidationStateFromConsistency UserPropertySheet_backward_compatibility addToDate_implicit_localtime add_boolean_type arnau arnau-RD-Components-CacheTool arnau-RD-Components-ERP5Form-ERP5Report arnau-RD-Components-ERP5Form-SelectionTool-MemcachedTool arnau-RD-Components-ERP5OOo arnau-RD-Components-PreferenceTool-Preference arnau-RD-Components-Products-import-compat arnau-RD-Components-astroid_cache_per_component_reset arnau-RD-Components-erp5_crm arnau-RD-Components-erp5_trade-TODO-Interactor arnau-RD-ERP5ify-portal_workflow-1-seb-merged-with-recent-master arnau-RD-ERP5ify-portal_workflow-2-do-not-rename-erp5_workflow-portal_types arnau-RD-ERP5ify-portal_workflow-BAK arnau-RD-ERP5ify-portal_workflow-WIP arnau-RD-ERP5ify-portal_workflow-WITHOUT-MIGRATION arnau-RD-ERP5ify-portal_workflow-WORKFLOWS-NOT-MIGRATED arnau-RD-py3-master-TM arnau-RD-py3-master-TM-BAK arnau-RD-py3-master-WIP arnau-RD-py3-master-WIP-BAK arnau-RD-py3-master-WIP-bt5-and-tests arnau-RD-zope4py3 arnau-TM-Components-Migrate-PortalTransforms arnau-TM-Components-ModuleSecurityInfo arnau-TM-WIP arnau-TM-newContent-temp_object arnau-WIP arnau-my2to3 arnau-zope4py2 aurel-zope4py2 cache-control-304-response cribjs-bootloader drop-ZServer e2e-erp5 enhance_scalability_testing erp5-component erp5-component-bak erp5-vifib erp5-vifib-no-Products.DCWorkflowGraph erp5-vifib-py3 erp5_drone_simulator erp5_payslip_migration feat/acquired_cat feat/coding_style_test feat/dedup_roles_in_pickles feat/dms_implicit_predecessor_successor_fields feat/erp5_ide feat/erp5pt feat/fsum feat/improve_rounding_tool feat/inventory_api_group_by_time_interval_list feat/lxml-html-snapshot feat/mariadb-10.11 feat/mariadb-10.11bis feat/mariadb-10.11ter feat/mariadb-10.5 feat/mariadb-10.6 feat/mariadb-11.4bis feat/mariadb-11.4bis-old feat/mariadb-11.4ter feat/notification-message-ignore-missing feat/python_language_support feat/reindexlastobjects_log feat/round_half_up feat/selenium-unexpected-success feat/slapos_agent_distributor feat/subject_set_query fix/GHSA-g5vw-3h65-2q3v fix/TALES_hide_error fix/ZMI_editor_preference fix/accounting-fec-no-line fix/advance_ecommerce_coding_crimes fix/erp5_site_global_id fix/is_ghost_temp_object fix/mariadb-1927 fix/measure-optional-variation fix/monaco-altClick fix/officejs_support_request_rss_secu fix/state_var fix/testnode_proctitle fix/workflow_info fix/workflow_method_security fix_isIndexable fix_web_illustration for_testrunner_1 for_testrunner_2 for_testrunner_3 graphic_gadget_js limit_accelerated_http_cache_manager lle-bout/metadata-modules master_w mr1362 my2to3 notebook_roque oauth-login-minor-improvement override_cache_control_header_by_caching_policy_manager poc/json-forms-study restore-from-trashbin revert-192c2000 rfc/activate_default rjs_listbox_sort_icon roque_quick scalability_crash_mariadb shop-box-rebase support_legacy_sftp_server support_relative_url_in_hyperlink_field support_request test-renderjs-float-field-step test_cmfactivity_isolation_level test_dynamic_methods tomo_testnode_slap_request translatable_path_master trustable-x-forwarded-for unify_predicate_edit without_legacy_workflow workaround_mroonga_14 wsgi_backport_setbody_lock zope2 zope2zope4py2 zope4py3 zope4py3-BEFORE-CLEANUP zope4py3-master-rebase nexedi-erp5-vifib-20201105 erp5.util-0.4.77 erp5.util-0.4.76 erp5.util-0.4.75 erp5.util-0.4.74 erp5.util-0.4.73 erp5.util-0.4.72 erp5.util-0.4.71 erp5.util-0.4.69 erp5.util-0.4.68 erp5.util-0.4.67 erp5.util-0.4.66 erp5-vifib-20240326 erp5-vifib-20230331 erp5-vifib-20230201 erp5-vifib-20220526 erp5-vifib-20220302 erp5-vifib-20210707 erp5-vifib-20201229 erp5-vifib-20200129
1 merge request!961fixes for TestResult_getTestSuiteData
...@@ -36,7 +36,10 @@ if context.getReference() and '-' in context.getReference(): # tolerate invalid ...@@ -36,7 +36,10 @@ if context.getReference() and '-' in context.getReference(): # tolerate invalid
# add information about test suite repositories # add information about test suite repositories
for test_result_repository in test_suite.contentValues(portal_type='Test Suite Repository'): for test_result_repository in test_suite.contentValues(portal_type='Test Suite Repository'):
repository_data = repository_dict.setdefault(test_result_repository.getBuildoutSectionId(), {}) buildout_section_id = test_result_repository.getBuildoutSectionId()
# NodeTestSuite.revision strip trailing -repository
buildout_section_id = buildout_section_id[:-11] if buildout_section_id.endswith('-repository') else buildout_section_id
repository_data = repository_dict.setdefault(buildout_section_id, {})
repository_data['repository_url'] = test_result_repository.getGitUrl() repository_data['repository_url'] = test_result_repository.getGitUrl()
repository_data['connector_relative_url'] = test_result_repository.getDestination() repository_data['connector_relative_url'] = test_result_repository.getDestination()
......
...@@ -1419,7 +1419,7 @@ class TestGitlabRESTConnectorInterface(ERP5TypeTestCase): ...@@ -1419,7 +1419,7 @@ class TestGitlabRESTConnectorInterface(ERP5TypeTestCase):
"""Tests for Gitlab commits annotations. """Tests for Gitlab commits annotations.
""" """
def afterSetUp(self): def afterSetUp(self):
connector = self.portal.portal_web_services.newContent( self.connector = connector = self.portal.portal_web_services.newContent(
portal_type='Gitlab REST Connector', portal_type='Gitlab REST Connector',
reference='lab.example.com', reference='lab.example.com',
url_string='https://lab.example.com/api/v4/', url_string='https://lab.example.com/api/v4/',
...@@ -1437,6 +1437,7 @@ class TestGitlabRESTConnectorInterface(ERP5TypeTestCase): ...@@ -1437,6 +1437,7 @@ class TestGitlabRESTConnectorInterface(ERP5TypeTestCase):
source_project_value=self.project, source_project_value=self.project,
) )
self.test_suite.newContent( self.test_suite.newContent(
id='test_repo',
portal_type='Test Suite Repository', portal_type='Test Suite Repository',
branch='master', branch='master',
git_url='https://lab.example.com/nexedi/test.git', git_url='https://lab.example.com/nexedi/test.git',
...@@ -1446,6 +1447,7 @@ class TestGitlabRESTConnectorInterface(ERP5TypeTestCase): ...@@ -1446,6 +1447,7 @@ class TestGitlabRESTConnectorInterface(ERP5TypeTestCase):
# another unrelated repository, without connector, this # another unrelated repository, without connector, this
# should not cause any API call. # should not cause any API call.
self.test_suite.newContent( self.test_suite.newContent(
id='erp5_repo',
portal_type='Test Suite Repository', portal_type='Test Suite Repository',
branch='master', branch='master',
git_url='https://lab.nexedi.com/nexedi/erp5.git', git_url='https://lab.nexedi.com/nexedi/erp5.git',
...@@ -1542,3 +1544,34 @@ class TestGitlabRESTConnectorInterface(ERP5TypeTestCase): ...@@ -1542,3 +1544,34 @@ class TestGitlabRESTConnectorInterface(ERP5TypeTestCase):
self._response_callback('failed')) self._response_callback('failed'))
self.test_result.stop() self.test_result.stop()
self.tic() self.tic()
def test_TestResult_getTestSuiteData(self):
"""test for TestResult_getTestSuiteData helper script
"""
self.assertEqual({
"repository_dict": {
"erp5": {
"commits_count": 1,
"connector_relative_url": None,
"repository_url": "https://lab.nexedi.com/nexedi/erp5.git",
"revision": "dc7b6e2e85e9434a97694a698884b057b7d30286",
},
"test": {
"commits_count": 10,
"connector_relative_url": self.connector.getRelativeUrl(),
"repository_url": "https://lab.example.com/nexedi/test.git",
"revision": "cc4c79c003f7cfe0bfcbc7b302eac988110c96ae",
},
},
"test_suite_relative_url": self.test_suite.getRelativeUrl()
},
self.test_result.TestResult_getTestSuiteData())
# the repositories on test suite can also have -repository suffix for
# buildout id. This is ignored in the keys of repository_dict from
# TestResult_getTestSuiteData, because this also ignored when generating
# the test result reference.
self.test_suite.erp5_repo.setBuildoutSectionId('foo-repository')
self.test_result.setReference('foo=1-dc7b6e2e85e9434a97694a698884b057b7d30286,test=10-cc4c79c003f7cfe0bfcbc7b302eac988110c96ae')
test_suite_data = self.test_result.TestResult_getTestSuiteData()
self.assertEqual(set(['foo', 'test']), set(test_suite_data['repository_dict']))
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment