def test_handle_merge_request_no_deprecate( mock_add_label_to_index, mock_cleanup, mock_prfb, mock_uiibs, mock_srs, mock_gpb, mock_abmis, mock_gbfdl, mock_geaps, mock_dep_b, mock_bi, mock_pi, mock_capml, mock_vii, mock_uiips, ): prebuild_info = { 'arches': {'amd64', 'other_arch'}, 'binary_image': 'binary-image:1.0', 'target_ocp_version': '4.6', 'source_from_index_resolved': 'source-index@sha256:resolved', 'target_index_resolved': 'target-index@sha256:resolved', 'distribution_scope': 'stage', } mock_prfb.return_value = prebuild_info mock_gbfdl.return_value = [] build_merge_index_image.handle_merge_request( 'source-from-index:1.0', ['some-bundle:1.0'], 1, 'binary-image:1.0', 'target-from-index:1.0', distribution_scope='stage', ) mock_cleanup.assert_called_once() mock_prfb.assert_called_once_with( 1, 'binary-image:1.0', binary_image_config=None, overwrite_from_index_token=None, source_from_index='source-from-index:1.0', target_index='target-from-index:1.0', distribution_scope='stage', ) mock_uiibs.assert_called_once_with(1, prebuild_info) assert mock_gpb.call_count == 2 mock_abmis.assert_called_once() mock_gbfdl.assert_called_once() mock_geaps.assert_called_once() assert mock_dep_b.call_count == 0 assert mock_bi.call_count == 2 assert mock_pi.call_count == 2 mock_vii.assert_not_called() mock_capml.assert_called_once() mock_uiips.assert_called_once()
def test_handle_merge_request( mock_set_registry_token, mock_add_label_to_index, mock_cleanup, mock_prfb, mock_uiibs, mock_srs, mock_gpb, mock_abmis, mock_gbfdl, mock_geaps, mock_dep_b, mock_bi, mock_pi, mock_capml, mock_vii, mock_uiips, target_index, target_index_resolved, binary_image, ): prebuild_info = { 'arches': {'amd64', 'other_arch'}, 'binary_image': binary_image, 'target_ocp_version': '4.6', 'source_from_index_resolved': 'source-index@sha256:resolved', 'target_index_resolved': target_index_resolved, 'distribution_scope': 'stage', } mock_prfb.return_value = prebuild_info mock_gbfdl.return_value = ['some-bundle:1.0'] binary_image_config = {'prod': {'v4.5': 'some_image'}, 'stage': {'stage': 'some_other_img'}} # Simulate opm's behavior of creating files that cannot be deleted def side_effect(_, temp_dir, *args, **kwargs): read_only_dir = os.path.join(temp_dir, 'read-only-dir') os.mkdir(read_only_dir) with open(os.path.join(read_only_dir, 'read-only-file'), 'w') as f: os.chmod(f.fileno(), stat.S_IRUSR | stat.S_IRGRP) # Make the dir read-only *after* populating it os.chmod(read_only_dir, mode=stat.S_IRUSR | stat.S_IRGRP) mock_dep_b.side_effect = side_effect build_merge_index_image.handle_merge_request( 'source-from-index:1.0', ['some-bundle:1.0'], 1, binary_image, target_index, distribution_scope='stage', binary_image_config=binary_image_config, ) mock_cleanup.assert_called_once() mock_prfb.assert_called_once_with( 1, RequestConfigMerge( _binary_image=binary_image, overwrite_target_index_token=None, source_from_index='source-from-index:1.0', target_index=target_index, distribution_scope='stage', binary_image_config=binary_image_config, ), ) mock_uiibs.assert_called_once_with(1, prebuild_info) if target_index: assert mock_gpb.call_count == 2 else: assert mock_gpb.call_count == 1 mock_vii.assert_not_called() mock_abmis.assert_called_once() mock_gbfdl.assert_called_once() mock_geaps.assert_called_once() mock_dep_b.assert_called_once() mock_set_registry_token.assert_called_once() assert mock_bi.call_count == 2 assert mock_pi.call_count == 2 assert mock_capml.call_count == 1 mock_uiips.assert_called_once()