import unittest from feedtrust.policy import PolicyEngine class TestPolicyEngine(unittest.TestCase): def test_basic_policy_compile_and_check(self): engine = PolicyEngine() dsl = ( 'allow subject="traderA" venue="venue1" signal="price" action="read" ' 'latency_ms=5 volume_cap=1000 regulatory="none"' ) engine.load_policies(dsl) ok = engine.check_access( subject="traderA", venue="venue1", signal="price", action="read", ) self.assertTrue(ok) def test_policy_denies_wrong_subject(self): engine = PolicyEngine() dsl = 'allow subject="traderA" venue="venue1" signal="price" action="read" latency_ms=5' engine.load_policies(dsl) ok = engine.check_access(subject="traderB", venue="venue1", signal="price", action="read") self.assertFalse(ok) if __name__ == '__main__': unittest.main()