diff --git a/ci_jobs_trigger/libs/operators_iib_trigger/iib_trigger.py b/ci_jobs_trigger/libs/operators_iib_trigger/iib_trigger.py index 56a0928..93d5eb6 100644 --- a/ci_jobs_trigger/libs/operators_iib_trigger/iib_trigger.py +++ b/ci_jobs_trigger/libs/operators_iib_trigger/iib_trigger.py @@ -123,7 +123,7 @@ def get_new_iib(config_data, logger): for _operator, _operator_name in job_products.items(): new_data[_ocp_version][job_name]["operators"].setdefault(_operator_name, {}) _operator_data = new_data[_ocp_version][job_name]["operators"][_operator_name] - _operator_data["triggered"] = False + _operator_data["new-iib"] = False logger.info(f"{LOG_PREFIX} Parsing new IIB data for {_operator_name}") for data_from_file in get_operator_data_from_url( operator_name=_operator, @@ -138,12 +138,12 @@ def get_new_iib(config_data, logger): iib_from_file = iib_data_from_file.split("iib:")[-1] if iib_from_file < iib_from_url: _operator_data["iib"] = index_image - _operator_data["triggered"] = True + _operator_data["new-iib"] = True new_trigger_data = True else: _operator_data["iib"] = index_image - _operator_data["triggered"] = True + _operator_data["new-iib"] = True new_trigger_data = True logger.info(f"{LOG_PREFIX} Done parsing new IIB data for {_jobs_data}") @@ -266,7 +266,7 @@ def fetch_update_iib_and_trigger_jobs(logger, tmp_dir, config_dict=None): for _, _job_data in trigger_dict.items(): for _job_name, _job_dict in _job_data.items(): operators = _job_dict["operators"] - if any([_value["triggered"] for _value in operators.values()]): + if any([_value["new-iib"] for _value in operators.values()]): try: trigger_ci_job( job=_job_name, diff --git a/ci_jobs_trigger/tests/operators_iib_trigger/test_operators_iib_trigger.py b/ci_jobs_trigger/tests/operators_iib_trigger/test_operators_iib_trigger.py index 386d88e..eae3b26 100644 --- a/ci_jobs_trigger/tests/operators_iib_trigger/test_operators_iib_trigger.py +++ b/ci_jobs_trigger/tests/operators_iib_trigger/test_operators_iib_trigger.py @@ -8,6 +8,7 @@ fetch_update_iib_and_trigger_jobs, upload_download_s3_bucket_file, verify_s3_or_local_file, + get_new_iib, ) LOGGER = get_logger("test_operators_iib_trigger") @@ -21,8 +22,8 @@ def json(): { "msg": { "index": { - "ocp_version": "4.15", - "index_image": "iib:quay.io/index-image", + "ocp_version": "v4.15", + "index_image": "iib:quay.io/iib:690654", } } } @@ -50,6 +51,14 @@ def base_config_dict(): } +@pytest.fixture() +def get_new_iib_config_dict(tmp_path, config_dict): + tmpfile = tmp_path / "iib-test.json" + tmpfile.touch() + config_dict["local_operators_latest_iib_filepath"] = tmpfile + return config_dict + + @pytest.fixture() def config_dict(base_config_dict): base_config_dict["ci_jobs"] = { @@ -145,3 +154,18 @@ def test_upload_missing_file_from_s3_bucket(s3_client_mock): boto_s3_client=s3_client_mock, slack_errors_webhook_url=None, ) + + +def test_get_new_iib(mocker, tmp_path, get_new_iib_config_dict): + mocker.patch.object(requests, "get", return_value=MockRequestGet()) + new_data = get_new_iib(config_data=get_new_iib_config_dict, logger=LOGGER) + expected_data = { + "v4.15": { + "openshift-ci-job-name": { + "operators": {"operator": {"new-iib": True, "iib": "iib:quay.io/iib:690654"}}, + "ci": "openshift-ci", + } + }, + "v4.16": {"jenkins-job-name": {"operators": {"operator": {"new-iib": False}}, "ci": "jenkins"}}, + } + assert new_data == expected_data