def test_store(self): """Test storing of cuds_object.""" client = TransportSessionClient(TestWrapperSession, None) client._engine = MockEngine() # first item c1 = create_recycle(oclass=city.CityWrapper, kwargs={}, uid=1, session=client, fix_neighbors=False) # store will be called here self.assertEqual(client._engine._sent_command, INITIALIZE_COMMAND) assertJsonLdEqual(self, json.loads(client._engine._sent_data), INIT_DATA) self.assertEqual(set(client._registry.keys()), {c1.uid}) # second item client._engine._sent_data = None client._engine._sent_command = None c2 = create_recycle(oclass=city.City, kwargs={"name": "Freiburg"}, uid=2, session=client, fix_neighbors=False) self.assertEqual(client._engine._sent_command, None) self.assertEqual(client._engine._sent_data, None) self.assertEqual(set(client._registry.keys()), {c1.uid, c2.uid}) client.close()
def test_send(self): """Test sending data to the server.""" client = TransportSessionClient(TestWrapperSession, None) client._engine = MockEngine() client._send("command", True, "hello", bye="bye") self.assertEqual(client._engine._sent_command, "command") self.assertEqual( client._engine._sent_data, ('{"added": [], "updated": [], "deleted": [], "expired": [], ' '"args": ["hello"], "kwargs": {"bye": "bye"}}')) client.close()
def test_receive(self): """Test the receive method.""" client = TransportSessionClient(TestWrapperSession, None) client._engine = MockEngine() w = city.CityWrapper(session=client) self.assertRaises(RuntimeError, client._receive, "ERROR: Error!", None) client._receive(json.dumps(SERIALIZED_BUFFERS2), None) self.assertEqual(set(client._registry.keys()), {uuid.UUID(int=42), w.uid}) self.assertEqual(client._buffers[BufferContext.USER], [dict(), dict(), dict()]) self.assertEqual( list(map(dict.keys, client._buffers[BufferContext.ENGINE])), [set([uuid.UUID(int=42)]), set(), set()]) client.close()
def test_load(self): """Test loading from server.""" client = TransportSessionClient(TestWrapperSession, None) client.root = 1 c1 = create_recycle( oclass=city.City, kwargs={"name": "Freiburg"}, uid=1, session=client, fix_neighbors=False, ) c2 = city.City(name="London", uid=2) c3 = create_recycle( oclass=city.City, kwargs={"name": "Paris"}, uid=3, session=client, fix_neighbors=False, ) client._reset_buffers(BufferContext.USER) client.expire(c3.uid) def on_send(command, data): with EngineContext(client): create_from_cuds_object(c2, client) return [c2, None] client._engine = MockEngine(on_send) result = list( client.load(uuid.UUID(int=1), uuid.UUID(int=2), uuid.UUID(int=3)) ) self.assertEqual(client._engine._sent_command, LOAD_COMMAND) self.assertEqual( client._engine._sent_data, '{"expired": ' '[{"UID": "00000000-0000-0000-0000-000000000003"}], ' '"uids": ' '[{"UID": "00000000-0000-0000-0000-000000000002"}, ' '{"UID": "00000000-0000-0000-0000-000000000003"}]}', ) self.assertEqual(result, [c1, c2, None]) self.assertEqual(set(client._registry.keys()), {c1.uid, c2.uid}) self.assertEqual( client._buffers, [[dict(), dict(), dict()], [dict(), dict(), dict()]], ) client.close()
def test_getattr(self): """Test the __getatt__ magic method.""" def command(*args, **kwargs): pass TestWrapperSession.command = consumes_buffers(command) client = TransportSessionClient(TestWrapperSession, None) client._engine = MockEngine() client.command("arg1", "arg2", kwarg="kwarg") self.assertEqual(client._engine._sent_command, "command") self.assertEqual( client._engine._sent_data, ('{"added": [], "updated": [], "deleted": [], "expired": [], ' '"args": ["arg1", "arg2"], "kwargs": {"kwarg": "kwarg"}}')) self.assertRaises(AttributeError, getattr, client, "run") client.close()