From be62179cb5d49c1e2e6b8e42f1fb100cd6b757f7 Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Feb 11 2020 12:01:34 +0000 Subject: Fix getting distinct results for composes Fixes #547 JIRA: FACTORY-5890 Signed-off-by: Lukas Holecek --- diff --git a/conf/subject_types/compose.yaml b/conf/subject_types/compose.yaml index 63d2a1a..272c12f 100644 --- a/conf/subject_types/compose.yaml +++ b/conf/subject_types/compose.yaml @@ -5,5 +5,5 @@ item_dict: # {"productmd.compose.id": ITEM} item_key: "productmd.compose.id" latest_result_unique_keys: - - arch_variant + - system_variant - system_architecture diff --git a/functional-tests/test_api_v1.py b/functional-tests/test_api_v1.py index 5890291..e0c90af 100644 --- a/functional-tests/test_api_v1.py +++ b/functional-tests/test_api_v1.py @@ -1043,21 +1043,29 @@ def test_validate_gating_yaml_missing_decision_context(requests_session, greenwa assert result.status_code == 200 +@pytest.mark.parametrize(('variant1', 'variant2'), ( + ( + dict(variant='BaseOS', architecture='ppc64'), + dict(variant='BaseOS', architecture='x86_64'), + ), + ( + dict(variant='BaseOS', architecture='ppc64'), + dict(variant='Cloud_Base', architecture='ppc64'), + ), +)) def test_make_a_decision_about_compose_all_variants_architectures( - requests_session, greenwave_server, testdatabuilder): + variant1, variant2, requests_session, greenwave_server, testdatabuilder): compose_id = testdatabuilder.unique_compose_id() failed_results = testdatabuilder.create_rtt_compose_result( compose_id=compose_id, - variant='BaseOS', - architecture='ppc64', - outcome='FAILED') + outcome='FAILED', + **variant1) testdatabuilder.create_rtt_compose_result( compose_id=compose_id, - variant='BaseOS', - architecture='x86_64', - outcome='PASSED') + outcome='PASSED', + **variant2) data = { 'decision_context': 'rtt_compose_gate', diff --git a/greenwave/resources.py b/greenwave/resources.py index 67bb862..1968122 100644 --- a/greenwave/resources.py +++ b/greenwave/resources.py @@ -66,7 +66,7 @@ class ResultsRetriever(BaseRetriever): return [] params = { - '_distinct_on': 'scenario,system_architecture' + '_distinct_on': 'scenario,system_architecture,system_variant' } if self.since: params.update({'since': self.since})