From 405d05af7133e82548a134bc38a905fac0b413b7 Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Jul 16 2019 06:06:03 +0000 Subject: Tests: Add tests for "no tests required" summary Signed-off-by: Lukas Holecek --- diff --git a/greenwave/tests/test_api_v1.py b/greenwave/tests/test_api_v1.py index 72c9f94..4368660 100644 --- a/greenwave/tests/test_api_v1.py +++ b/greenwave/tests/test_api_v1.py @@ -53,9 +53,9 @@ def mock_waivers(): yield mocked -def make_decision(**kwargs): +def make_decision(policies=DEFAULT_DECISION_POLICIES, **kwargs): app = create_app('greenwave.config.TestingConfig') - app.config['policies'] = Policy.safe_load_all(dedent(DEFAULT_DECISION_POLICIES)) + app.config['policies'] = Policy.safe_load_all(dedent(policies)) client = app.test_client() data = DEFAULT_DECISION_DATA.copy() data.update(kwargs) @@ -98,6 +98,47 @@ def test_make_decision_retrieves_waivers_once_on_verbose_and_missing(mock_result mock_waivers.assert_called_once() +def test_make_decision_with_no_tests_required(mock_results, mock_waivers): + mock_results.return_value = [] + mock_waivers.return_value = [] + policies = """ + --- !Policy + id: "test_policy" + product_versions: + - fedora-rawhide + decision_context: test_policies + subject_type: koji_build + rules: [] + """ + response = make_decision(policies=policies) + assert 200 == response.status_code + assert 'no tests are required' == response.json['summary'] + mock_waivers.assert_not_called() + + +def test_make_decision_with_no_tests_required_and_missing_gating_yaml(mock_results, mock_waivers): + mock_results.return_value = [] + mock_waivers.return_value = [] + policies = """ + --- !Policy + id: "test_policy" + product_versions: + - fedora-rawhide + decision_context: test_policies + subject_type: koji_build + rules: + - !RemoteRule {} + """ + with mock.patch('greenwave.resources.retrieve_scm_from_koji') as scm: + scm.return_value = ('rpms', 'nethack', 'c3c47a08a66451cb9686c49f040776ed35a0d1bb') + with mock.patch('greenwave.resources.retrieve_yaml_remote_rule') as f: + f.return_value = None + response = make_decision(policies=policies) + assert 200 == response.status_code + assert 'no tests are required' == response.json['summary'] + mock_waivers.assert_not_called() + + def test_life_decision(): app = create_app('greenwave.config.TestingConfig') client = app.test_client()