Пример #1
0
    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')"
Пример #2
0
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())