diff --git a/legacy.constraints b/legacy.constraints new file mode 100644 index 0000000..ad683cf --- /dev/null +++ b/legacy.constraints @@ -0,0 +1,9 @@ +# These constraints are applied during testing with python2. +# Old versions of libraries can be added here if you want to +# ensure pubtools-quay works with those. +PyYAML < 5.1 +jsonschema==2.3.0 +pluggy==0.5.2 + +# For compatibility with old pluggy +pytest-cov<2 diff --git a/pubtools/iib/iib_ops.py b/pubtools/iib/iib_ops.py index ddf4455..10d522d 100644 --- a/pubtools/iib/iib_ops.py +++ b/pubtools/iib/iib_ops.py @@ -125,6 +125,13 @@ "required": False, "type": bool, }, + ("--build-tag",): { + "group": "IIB service", + "help": "extra tags to apply on built index image in temp namespace", + "required": False, + "type": str, + "action": "append", + }, } ADD_CMD_ARGS = CMD_ARGS.copy() @@ -237,6 +244,9 @@ def _iib_op_main(args, operation=None, items_final_state="PUSHED"): if args.overwrite_from_index_token: extra_args["overwrite_from_index_token"] = args.overwrite_from_index_token + if args.build_tag: + extra_args["build_tags"] = args.build_tag + build_details = bundle_op( args.index_image, args.bundle if operation == "add_bundles" else args.operator, diff --git a/tests/test_iib_ops.py b/tests/test_iib_ops.py index ed38ca1..2b913de 100644 --- a/tests/test_iib_ops.py +++ b/tests/test_iib_ops.py @@ -155,6 +155,10 @@ def fixture_common_iib_op_args(): "example@REALM", "--iib-insecure", "--overwrite-from-index", + "--build-tag", + "extra-tag-1", + "--build-tag", + "extra-tag-2", ] @@ -174,6 +178,7 @@ def add_bundles_mock_calls_tester( overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", deprecation_list=["bundle1"], + build_tags=["extra-tag-1", "extra-tag-2"], ) fixture_iib_client.assert_called_once_with( "iib-server", auth=fixture_iib_krb_auth.return_value, ssl_verify=False @@ -198,6 +203,7 @@ def add_bundles_mock_calls_tester_empty_deprecation_list( binary_image="binary-image", overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", + build_tags=["extra-tag-1", "extra-tag-2"], ) fixture_iib_client.assert_called_once_with( "iib-server", auth=fixture_iib_krb_auth.return_value, ssl_verify=False @@ -223,6 +229,7 @@ def add_bundles_mock_calls_tester_deprecation_bundles( overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", deprecation_list=["bundle1", "bundle2"], + build_tags=["extra-tag-1", "extra-tag-2"], ) fixture_iib_client.assert_called_once_with( "iib-server", auth=fixture_iib_krb_auth.return_value, ssl_verify=False @@ -247,6 +254,7 @@ def add_bundles_mock_calls_tester_not_called( binary_image="binary-image", overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", + build_tags=["extra-tag-1", "extra-tag-2"], ) fixture_iib_client.assert_called_once_with( "iib-server", auth=fixture_iib_krb_auth.return_value, ssl_verify=False @@ -271,6 +279,7 @@ def remove_operators_mock_calls_tester_not_called( binary_image="binary-image", overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", + build_tags=["extra-tag-1", "extra-tag-2"], ) fixture_pulplib_repo_sync.assert_not_called() fixture_pulplib_repo_publish.assert_not_called() @@ -292,6 +301,7 @@ def remove_operators_mock_calls_tester( binary_image="binary-image", overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", + build_tags=["extra-tag-1", "extra-tag-2"], ) fixture_pulplib_repo_sync.assert_called_once() assert fixture_pulplib_repo_sync.mock_calls[0].args[0].feed == "https://feed.com" @@ -451,6 +461,7 @@ def test_add_bundles_py( binary_image="binary-image", overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", + build_tags=["extra-tag-1", "extra-tag-2"], ) fixture_pulplib_repo_sync.assert_called_once() assert fixture_pulplib_repo_sync.mock_calls[0].args[0].feed == "https://feed.com" @@ -508,6 +519,7 @@ def test_add_bundles_py_multiple_bundles( binary_image="binary-image", overwrite_from_index=True, overwrite_from_index_token="overwrite_from_index_token", + build_tags=["extra-tag-1", "extra-tag-2"], ) fixture_pulplib_repo_sync.assert_called_once() assert fixture_pulplib_repo_sync.mock_calls[0].args[0].feed == "https://feed.com" diff --git a/tests/utils.py b/tests/utils.py index 699bb69..a7a0324 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -22,6 +22,7 @@ def setup_task( state_seq=("in_progress", "finished"), op_type="add", deprecation_list=None, + build_tags=None, ): tid = self._gen_task_id() self.task_state_seq[tid] = list(state_seq) diff --git a/tox.ini b/tox.ini index 8d90c48..96d2aa9 100644 --- a/tox.ini +++ b/tox.ini @@ -27,6 +27,7 @@ exclude=.svn,CVS,.bzr,.hg,.git,__pycache__,.tox,setup.py,docs [testenv:py27] deps= {[py]deps} + -c legacy.constraints basepython = python2.7 commands = python -m pytest -v --cov=pubtools --cov-report=html