Skip to content

Commit

Permalink
update tests to check each param change on hash()
Browse files Browse the repository at this point in the history
  • Loading branch information
BurnzZ committed Oct 26, 2022
1 parent 42bd123 commit 36cd866
Showing 1 changed file with 21 additions and 28 deletions.
49 changes: 21 additions & 28 deletions tests/test_rules.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down

0 comments on commit 36cd866

Please sign in to comment.