feedtrust-blockchain-backed.../tests/test_policy.py

31 lines
965 B
Python

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()