From 094f93e6688946441fd6104d1b32f98214037d13 Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Sep 19 2018 13:19:41 +0000 Subject: Assume result failed if outcome is FAILED or NEEDS_INSPECTION There are new test result outcomes (QUEUED, RUNNING) which should be considered as missing results. --- diff --git a/greenwave/policies.py b/greenwave/policies.py index 486f9d4..2a54cad 100644 --- a/greenwave/policies.py +++ b/greenwave/policies.py @@ -406,6 +406,10 @@ class PassingTestCaseRule(Rule): if result['outcome'] in ('PASSED', 'INFO'): return TestResultPassed(self.test_case_name, result['id']) + if result['outcome'] not in ('FAILED', 'NEEDS_INSPECTION'): + return TestResultMissing( + subject_type, subject_identifier, self.test_case_name, self.scenario) + # TODO limit who is allowed to waive matching_waivers = [w for w in waivers if ( diff --git a/greenwave/tests/test_policies.py b/greenwave/tests/test_policies.py index d321490..0cbb5f2 100644 --- a/greenwave/tests/test_policies.py +++ b/greenwave/tests/test_policies.py @@ -770,3 +770,25 @@ def test_policies_to_json(): 'relevance_key': None, 'relevance_value': None, } + + +def test_running_outcome(tmpdir): + p = tmpdir.join('fedora.yaml') + p.write(""" +--- !Policy +id: some_id +product_versions: +- irrelevant +decision_context: test +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: sometest} + """) + policies = load_policies(tmpdir.strpath) + policy = policies[0] + + item = 'some_nevr' + results = DummyResultsRetriever(item, 'sometest', 'RUNNING', 'brew-build') + decision = policy.check(item, results, []) + assert len(decision) == 1 + assert isinstance(decision[0], TestResultMissing)