From fc2269ba0252b0be33fff517276e9aeb24484cb6 Mon Sep 17 00:00:00 2001 From: Niels Thykier Date: Sun, 13 Nov 2016 17:31:28 +0000 Subject: [PATCH] rc-bugs policy: Ignored bugs are not unique to testing Signed-off-by: Niels Thykier --- britney2/policies/policy.py | 1 + .../rc-bugs/basic/rc-bugs-testing | 1 + .../rc-bugs/basic/rc-bugs-unstable | 1 + tests/test_policy.py | 24 +++++++++++++++++++ 4 files changed, 27 insertions(+) diff --git a/britney2/policies/policy.py b/britney2/policies/policy.py index c0d0a5f..4a0e88b 100644 --- a/britney2/policies/policy.py +++ b/britney2/policies/policy.py @@ -478,6 +478,7 @@ class RCBugPolicy(BasePolicy): continue if not ignored_bugs.isdisjoint(bugs_u): bugs_u -= ignored_bugs + bugs_t -= ignored_bugs rcbugs_info['ignored-bugs'] = { 'bugs': sorted(ignored_bugs), 'issued-by': ignore_hint.user diff --git a/tests/policy-test-data/rc-bugs/basic/rc-bugs-testing b/tests/policy-test-data/rc-bugs/basic/rc-bugs-testing index be0f3ea..e658fc5 100644 --- a/tests/policy-test-data/rc-bugs/basic/rc-bugs-testing +++ b/tests/policy-test-data/rc-bugs/basic/rc-bugs-testing @@ -1,2 +1,3 @@ fixes-bug 123456 not-a-regression 123457 +regression-but-fixes-more-bugs 100000,100001,100002 diff --git a/tests/policy-test-data/rc-bugs/basic/rc-bugs-unstable b/tests/policy-test-data/rc-bugs/basic/rc-bugs-unstable index bfa48ca..a742e84 100644 --- a/tests/policy-test-data/rc-bugs/basic/rc-bugs-unstable +++ b/tests/policy-test-data/rc-bugs/basic/rc-bugs-unstable @@ -1,2 +1,3 @@ not-a-regression 123457 regression 123458 +regression-but-fixes-more-bugs 100000,100003 diff --git a/tests/test_policy.py b/tests/test_policy.py index f0cdadd..743112c 100644 --- a/tests/test_policy.py +++ b/tests/test_policy.py @@ -80,6 +80,16 @@ class TestRCBugsPolicy(unittest.TestCase): assert set(policy_info['rc-bugs']['unique-target-bugs']) == set() assert set(policy_info['rc-bugs']['shared-bugs']) == set() + def test_regression_but_fixes_more_bugs(self): + src_name = 'regression-but-fixes-more-bugs' + src_t, src_u, excuse, policy_info = create_policy_objects(src_name, '1.0', '2.0') + policy = initialize_policy('rc-bugs/basic', RCBugPolicy) + verdict = policy.apply_policy(policy_info, 'unstable', src_name, src_t, src_u, excuse) + assert verdict == PolicyVerdict.REJECTED_PERMANENTLY + assert set(policy_info['rc-bugs']['unique-source-bugs']) == {'100003'} + assert set(policy_info['rc-bugs']['unique-target-bugs']) == {'100001', '100002'} + assert set(policy_info['rc-bugs']['shared-bugs']) == {'100000'} + def test_not_a_regression(self): src_name = 'not-a-regression' src_t, src_u, excuse, policy_info = create_policy_objects(src_name, '1.0', '2.0') @@ -113,5 +123,19 @@ class TestRCBugsPolicy(unittest.TestCase): assert set(policy_info['rc-bugs']['unique-target-bugs']) == set() assert set(policy_info['rc-bugs']['shared-bugs']) == set() + def test_regression_but_fixes_more_bugs_bad_hint(self): + src_name = 'regression-but-fixes-more-bugs' + hints = ['ignore-rc-bugs 100000 regression-but-fixes-more-bugs/2.0'] + src_t, src_u, excuse, policy_info = create_policy_objects(src_name, '1.0', '2.0') + policy = initialize_policy('rc-bugs/basic', RCBugPolicy, hints=hints) + verdict = policy.apply_policy(policy_info, 'unstable', src_name, src_t, src_u, excuse) + assert verdict == PolicyVerdict.REJECTED_PERMANENTLY + print(str(policy_info['rc-bugs'])) + assert set(policy_info['rc-bugs']['unique-source-bugs']) == {'100003'} + assert set(policy_info['rc-bugs']['unique-target-bugs']) == {'100001', '100002'} + assert set(policy_info['rc-bugs']['ignored-bugs']['bugs']) == {'100000'} + assert policy_info['rc-bugs']['ignored-bugs']['issued-by'] == TEST_HINTER + assert set(policy_info['rc-bugs']['shared-bugs']) == set() + if __name__ == '__main__': unittest.main()