def test_create_interpreter(self): res = handler_resource("tag_team") hs = HistoryState("example", [res]) interp = hs.create_interpreter() self.assertEqual(interp.can_read(identity("mitzi")), True) self.assertEqual(interp.can_write(identity("victor")), False) # Should not be the same/cached self.assertNotEqual(interp, hs.create_interpreter())
def test_apply(self): res = handler_resource("tag_team") hs = HistoryState("example", [res]) ev = Event( {"path": "/handler", "property": "comment", "value": "An arbitrary comment"}, identity("mitzi"), None ) hs.apply(ev) self.assertEqual(res.comment, "An arbitrary comment") self.assertEqual(hs.hash, ev.hash())
def test_interpreter(self): res = handler_resource("tag_team") hs = HistoryState("example", [res]) interp = hs.interpreter self.assertEqual(interp.can_read(identity("mitzi")), True) self.assertEqual(interp.can_write(identity("victor")), False) # Should be the same/cached self.assertEqual(interp, hs.interpreter) # Should not be the same/cached, after hash change hs.hash = "some other hash" self.assertNotEqual(interp, hs.interpreter)
def setUp(self): self.mitzi = identity('mitzi') self.atlas = identity('atlas') self.res_default = Resource() self.res_tt = handler_resource("tag_team") self.ev_default = Event({'hello':'world'}, self.mitzi) self.ev_tt = Event( { 'path' : '/handler', 'property' : 'comment', 'value' : 'An arbitrary comment', }, self.atlas ) self.hs1 = HistoryState(None, [self.res_default]) self.hs2 = HistoryState("example", [self.res_default, self.res_tt])
def test_handler(self): res = handler_resource("echo_chamber") hs = HistoryState("example", [res]) self.assertEqual(hs.handler, res)