From 36cd866263f2081fa221a00c218568c5a4026fd1 Mon Sep 17 00:00:00 2001 From: Kevin Lloyd Bernal Date: Wed, 26 Oct 2022 18:54:17 +0800 Subject: [PATCH] update tests to check each param change on hash() --- tests/test_rules.py | 49 +++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/tests/test_rules.py b/tests/test_rules.py index 68781558..cdebe78b 100644 --- a/tests/test_rules.py +++ b/tests/test_rules.py @@ -77,35 +77,28 @@ def test_apply_rule_uniqueness() -> None: # The ``meta`` parameter is ignored in the hash. assert hash(rule1) == hash(rule2) - rule1 = ApplyRule( - for_patterns=patterns, - use=POTopLevel1, - instead_of=POTopLevelOverriden1, - to_return=Product, - ) - rule2 = ApplyRule( - for_patterns=patterns, - use=POTopLevel1, - instead_of=POTopLevelOverriden1, - to_return=ProductSimilar, - ) - # A different Item Class results in different hash. - assert hash(rule1) != hash(rule2) + params = [ + { + "for_patterns": patterns, + "use": POTopLevel1, + "instead_of": POTopLevelOverriden1, + "to_return": Product, + }, + { + "for_patterns": patterns_b, + "use": POTopLevel2, + "instead_of": POTopLevelOverriden2, + "to_return": ProductSimilar, + }, + ] - rule1 = ApplyRule( - for_patterns=patterns, - use=POTopLevel1, - instead_of=POTopLevelOverriden1, - to_return=Product, - ) - rule2 = ApplyRule( - for_patterns=patterns_b, - use=POTopLevel2, - instead_of=POTopLevelOverriden2, - to_return=ProductSimilar, - ) - # Totally different params affect the hash completely - assert hash(rule1) != hash(rule2) + for change in params[0].keys(): + # Changing any one of the params should result in a hash mismatch + rule1 = ApplyRule(**params[0]) + kwargs = params[0].copy() + kwargs.update({change: params[1][change]}) + rule2 = ApplyRule(**kwargs) + assert hash(rule1) != hash(rule2) def test_apply_rule_immutability() -> None: