class GremlinClientSessionTest(unittest.TestCase): def setUp(self): self.loop = asyncio.new_event_loop() asyncio.set_event_loop(None) self.gc = GremlinClientSession(url="ws://localhost:8182/", loop=self.loop) self.script1 = """graph = TinkerFactory.createModern() g = graph.traversal(standard())""" self.script2 = "g.V().has('name','marko').out('knows').values('name')" def tearDown(self): self.loop.run_until_complete(self.gc.close()) self.loop.close() def test_session(self): @asyncio.coroutine def go(): yield from self.gc.execute(self.script1) results = yield from self.gc.execute(self.script2) return results results = self.loop.run_until_complete(go()) self.assertTrue(len(results[0].data), 2) def test_session_reset(self): @asyncio.coroutine def go(): yield from self.gc.execute(self.script1) self.gc.reset_session() results = yield from self.gc.execute(self.script2) return results results = self.loop.run_until_complete(go()) self.assertIsNone(results[0].data) def test_session_manual_reset(self): @asyncio.coroutine def go(): yield from self.gc.execute(self.script1) new_sess = str(uuid.uuid4()) sess = self.gc.reset_session(session=new_sess) self.assertEqual(sess, new_sess) self.assertEqual(self.gc.session, new_sess) results = yield from self.gc.execute(self.script2) return results results = self.loop.run_until_complete(go()) self.assertIsNone(results[0].data) def test_session_set(self): @asyncio.coroutine def go(): yield from self.gc.execute(self.script1) new_sess = str(uuid.uuid4()) self.gc.session = new_sess self.assertEqual(self.gc.session, new_sess) results = yield from self.gc.execute(self.script2) return results results = self.loop.run_until_complete(go()) self.assertIsNone(results[0].data) def test_resp_session(self): @asyncio.coroutine def go(): session = str(uuid.uuid4()) self.gc.session = session resp = yield from self.gc.submit("x + x", bindings={"x": 4}) while True: f = yield from resp.stream.read() if f is None: break self.assertEqual(resp.session, session) self.loop.run_until_complete(go())