diff --git a/pubtools/iib/iib_ops.py b/pubtools/iib/iib_ops.py index 95f312f..879767f 100644 --- a/pubtools/iib/iib_ops.py +++ b/pubtools/iib/iib_ops.py @@ -89,7 +89,7 @@ ("--binary-image",): { "group": "IIB service", "help": "//: of binary image", - "required": True, + "required": False, "type": str, }, ("--arch",): { @@ -220,6 +220,9 @@ def _iib_op_main(args, operation=None, items_final_state="PUSHED"): if args.iib_legacy_org: extra_args["organization"] = args.iib_legacy_org + if args.binary_image: + extra_args["binary_image"] = args.binary_image + if args.overwrite_from_index: extra_args["overwrite_from_index"] = args.overwrite_from_index @@ -228,7 +231,6 @@ def _iib_op_main(args, operation=None, items_final_state="PUSHED"): build_details = bundle_op( args.index_image, - args.binary_image, args.bundle if operation == "add_bundles" else args.operator, args.arch, **extra_args diff --git a/requirements.txt b/requirements.txt index d410f13..d9fcb57 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,6 @@ six setuptools +pyrsistent<=0.16.0; python_version == '2.7' pushcollector pubtools-pulp iiblib>=0.9.0 diff --git a/tests/fake_task_manager.py b/tests/fake_task_manager.py index eff68bf..55ed2bb 100644 --- a/tests/fake_task_manager.py +++ b/tests/fake_task_manager.py @@ -12,9 +12,9 @@ def _gen_task_id(self): def setup_task( self, index, - binary, map_or_op, arches, + binary_image="binary-image", state_seq=("in_progress", "finished"), op_type="add", ): @@ -28,8 +28,8 @@ def setup_task( "from_index": index, "from_index_resolved": index + "-resolved", "bundles": map_or_op, - "binary_image": binary, - "binary_image_resolved": binary + "-resolved", + "binary_image": binary_image, + "binary_image_resolved": binary_image + "-resolved", "index_image": "index_image", "arches": arches, } diff --git a/tests/test_iib_ops.py b/tests/test_iib_ops.py index c0b4b3f..d830a81 100644 --- a/tests/test_iib_ops.py +++ b/tests/test_iib_ops.py @@ -66,15 +66,21 @@ def setup_entry_point_py(entry_tuple, environ_vars): @pytest.fixture def fixture_iib_client(): with mock.patch("iiblib.iibclient.IIBClient") as iibc_patched: - iibc_patched.return_value.add_bundles.side_effect = lambda *args, **kwargs: IIBBuildDetailsModel.from_dict( - fake_tm.setup_task(*args, **kwargs) + iibc_patched.return_value.add_bundles.side_effect = ( + lambda *args, **kwargs: IIBBuildDetailsModel.from_dict( + fake_tm.setup_task(*args, **kwargs) + ) ) - iibc_patched.return_value.remove_operators.side_effect = lambda *args, **kwargs: IIBBuildDetailsModel.from_dict( - fake_tm.setup_task(*args, **kwargs) + iibc_patched.return_value.remove_operators.side_effect = ( + lambda *args, **kwargs: IIBBuildDetailsModel.from_dict( + fake_tm.setup_task(*args, **kwargs) + ) ) iibc_patched.return_value.get_build.side_effect = fake_tm.get_task - iibc_patched.return_value.wait_for_build.side_effect = lambda build_details: IIBBuildDetailsModel.from_dict( - fake_tm.get_task(build_details.id) + iibc_patched.return_value.wait_for_build.side_effect = ( + lambda build_details: IIBBuildDetailsModel.from_dict( + fake_tm.get_task(build_details.id) + ) ) yield iibc_patched @@ -157,11 +163,11 @@ def add_bundles_mock_calls_tester( ): fixture_iib_client.return_value.add_bundles.assert_called_once_with( "index-image", - "binary-image", ["bundle1"], ["arch"], cnr_token="cnr_token", organization="legacy-org", + binary_image="binary-image", overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", ) @@ -181,11 +187,11 @@ def add_bundles_mock_calls_tester_not_called( ): fixture_iib_client.return_value.add_bundles.assert_called_once_with( "index-image", - "binary-image", ["bundle1"], ["arch"], cnr_token="cnr_token", organization="legacy-org", + binary_image="binary-image", overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", ) @@ -207,9 +213,9 @@ def remove_operators_mock_calls_tester_not_called( ) fixture_iib_client.return_value.remove_operators.assert_called_once_with( "index-image", - "binary-image", ["1"], ["arch"], + binary_image="binary-image", overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", ) @@ -228,9 +234,9 @@ def remove_operators_mock_calls_tester( ) fixture_iib_client.return_value.remove_operators.assert_called_once_with( "index-image", - "binary-image", ["1"], ["arch"], + binary_image="binary-image", overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", ) @@ -309,10 +315,14 @@ def test_add_bundles_cli_error( repo = fixture_container_image_repo fixture_pulp_client.return_value.search_repository.return_value = [repo] fixture_pulp_client.return_value.get_repository.return_value = repo - fixture_iib_client.return_value.add_bundles.side_effect = lambda *args, **kwargs: IIBBuildDetailsModel.from_dict( - fake_tm.setup_task( - *args, - **dict(list(kwargs.items()) + [("state_seq", ("in_progress", "failed"))]) + fixture_iib_client.return_value.add_bundles.side_effect = ( + lambda *args, **kwargs: IIBBuildDetailsModel.from_dict( + fake_tm.setup_task( + *args, + **dict( + list(kwargs.items()) + [("state_seq", ("in_progress", "failed"))] + ) + ) ) ) @@ -369,10 +379,10 @@ def test_add_bundles_py( ) fixture_iib_client.return_value.add_bundles.assert_called_once_with( "index-image", - "binary-image", ["bundle1"], ["arch"], cnr_token="cnr_token", + binary_image="binary-image", overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", ) @@ -416,10 +426,10 @@ def test_add_bundles_py_multiple_bundles( ) fixture_iib_client.return_value.add_bundles.assert_called_once_with( "index-image", - "binary-image", ["bundle1", "bundle2"], ["arch"], cnr_token="cnr_token", + binary_image="binary-image", overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", ) @@ -461,8 +471,12 @@ def test_remove_operators_cli( repo = fixture_container_image_repo fixture_pulp_client.return_value.search_repository.return_value = [repo] fixture_pulp_client.return_value.get_repository.return_value = repo - fixture_iib_client.return_value.remove_operators.side_effect = lambda *args, **kwargs: IIBBuildDetailsModel.from_dict( - fake_tm.setup_task(*args, **dict(list(kwargs.items()) + [("op_type", "rm")])) + fixture_iib_client.return_value.remove_operators.side_effect = ( + lambda *args, **kwargs: IIBBuildDetailsModel.from_dict( + fake_tm.setup_task( + *args, **dict(list(kwargs.items()) + [("op_type", "rm")]) + ) + ) ) with setup_entry_point_cli( ("pubtools_iib", "console_scripts", "pubtools-iib-remove-operators"), @@ -497,12 +511,14 @@ def test_remove_operators_cli_error( repo = fixture_container_image_repo fixture_pulp_client.return_value.search_repository.return_value = [repo] fixture_pulp_client.return_value.get_repository.return_value = repo - fixture_iib_client.return_value.remove_operators.side_effect = lambda *args, **kwargs: IIBBuildDetailsModel.from_dict( - fake_tm.setup_task( - *args, - **dict( - list(kwargs.items()) - + [("state_seq", ("in_progress", "failed")), ("op_type", "rm")] + fixture_iib_client.return_value.remove_operators.side_effect = ( + lambda *args, **kwargs: IIBBuildDetailsModel.from_dict( + fake_tm.setup_task( + *args, + **dict( + list(kwargs.items()) + + [("state_seq", ("in_progress", "failed")), ("op_type", "rm")] + ) ) ) ) diff --git a/tests/utils.py b/tests/utils.py index 9c127bc..12ea7cf 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -15,9 +15,9 @@ def _gen_task_id(self): def setup_task( self, index, - binary, map_or_op, arches, + binary_image="binary-image", cnr_token=None, organization=None, overwrite_from_index=False, @@ -34,8 +34,8 @@ def setup_task( "state_history": [], "from_index": index, "from_index_resolved": index + "-resolved", - "binary_image": binary, - "binary_image_resolved": binary + "-resolved", + "binary_image": binary_image, + "binary_image_resolved": binary_image + "-resolved", "bundle_mapping": {}, "index_image": "feed.com/index/image:tag", "arches": arches,