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 setUp(self): StreamTest.setUp(self) self.doc = handler_document("echo_chamber") self.ev = Event({'x':'y'}, identity("atlas"), self.doc.version) self.quorum = Quorum(self.ev, self.doc._qs) self.quorum.document = self.doc self.ident = identity() self.owner = Owner(self.ident, make_jack=False) self.owner.own_document(self.doc)
def setUp(self): self.doc = handler_document("tag_team") self.qs = self.doc._qs self.mitzi = identity('mitzi') self.atlas = identity('atlas') self.ev1 = Event({"hello":"world"}, self.mitzi, self.doc.version) self.ev2 = Event({"turtle":"food"}, self.mitzi, self.doc.version) self.q1 = Quorum(self.ev1, self.qs) self.q2 = Quorum(self.ev2, self.qs) self.owner = Owner(self.mitzi, make_jack=False) self.owner.own_document(self.doc) self.owner.identities.update_ident(self.atlas)
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.doc = handler_document('echo_chamber') self.ident = identity() self.ev = Event({'x':'y'}, self.ident, 'stormageddon') self.quorum = Quorum(self.ev, self.doc._qs) self.owner = Owner(self.ident, make_jack=False) self.owner.own_document(self.doc)
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.lua', '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 setUp(self): StreamTest.setUp(self) self.router = Router() self.mitzi = Owner(identity("mitzi"), self.router) self.atlas = Owner(identity("atlas"), self.router) self.victor = Owner(identity("victor"), self.router) self.mitzi.identities.sync(self.atlas.identities, self.victor.identities) # Document that mitzi and atlas are part of, but victor is not. # Separate identical starting points for all of them. self.mdoc = handler_document("tag_team") self.adoc = handler_document("tag_team") self.vdoc = handler_document("tag_team") self.mitzi.own_document(self.mdoc) self.atlas.own_document(self.adoc) self.victor.own_document(self.vdoc)
def test_init_no_location(self): # Make sure self_idents with no location fail badident = identity() badident.location = None self.assertRaises( TypeError, Owner, badident, None, False )
def test_init(self): # Do setup for testing a good owner. owner = Owner(identity(), make_jack = False) key = String('["local",null,"mitzi"]') self.assertIsInstance(owner.identities, IdentityCache) self.assertIn(key, owner.identities) self.assertIsInstance(owner.identities[key], Identity) doc = handler_document("echo_chamber") self.assertIsInstance(doc.handler, Resource) owner.own_document(doc)
def test_apply(self): res = handler_resource("tag_team") hs = HistoryState("example", [res]) ev = Event( {"path": "/handler.lua", "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 setUp(self): self.mitzi = identity('mitzi') self.cache = IdentityCache() self.rr = ReadRequest(self.mitzi) self.cache.update_ident(self.mitzi)