1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
from unittest import TestCase
from rules.predicates import always_false, always_true
from rules.rulesets import (
RuleSet,
add_rule,
default_rules,
remove_rule,
rule_exists,
set_rule,
test_rule,
)
class RulesetTests(TestCase):
@staticmethod
def reset_ruleset(ruleset):
for k in list(ruleset.keys()):
ruleset.pop(k)
def setUp(self):
self.reset_ruleset(default_rules)
def tearDown(self):
self.reset_ruleset(default_rules)
def test_shared_ruleset(self):
add_rule("somerule", always_true)
assert "somerule" in default_rules
assert rule_exists("somerule")
assert test_rule("somerule")
assert test_rule("somerule")
with self.assertRaises(KeyError):
add_rule("somerule", always_false)
set_rule("somerule", always_false)
assert not test_rule("somerule")
remove_rule("somerule")
assert not rule_exists("somerule")
def test_ruleset(self):
ruleset = RuleSet()
ruleset.add_rule("somerule", always_true)
assert "somerule" in ruleset
assert ruleset.rule_exists("somerule")
assert ruleset.test_rule("somerule")
with self.assertRaises(KeyError):
ruleset.add_rule("somerule", always_true)
ruleset.set_rule("somerule", always_false)
assert not test_rule("somerule")
ruleset.remove_rule("somerule")
assert not ruleset.rule_exists("somerule")
|