diff --git a/tests/test_sasl.py b/tests/test_sasl.py new file mode 100644 index 0000000000000000000000000000000000000000..62d560f983b0e6c157a8d36c9603b0da1a5e80ae --- /dev/null +++ b/tests/test_sasl.py @@ -0,0 +1,64 @@ +""" +""" + +import asyncio +import unittest +import uuid +import aiohttp +from aiogremlin import (submit, GremlinConnector, GremlinClient, + GremlinClientSession, GremlinServerError, + GremlinClientWebSocketResponse) +from tests import SubmitTest, GremlinClientTest, GremlinClientSessionTest + + +class SaslSubmitTest(SubmitTest): + + def setUp(self): + self.uri = 'https://localhost:8182/' + self.loop = asyncio.new_event_loop() + asyncio.set_event_loop(None) + + +class SaslGremlinClientTest(GremlinClientTest): + + def setUp(self): + self.uri = 'https://localhost:8182/' + self.loop = asyncio.new_event_loop() + asyncio.set_event_loop(None) + connector = aiohttp.TCPConnector(force_close=False, loop=self.loop, + verify_ssl=False) + + client_session = aiohttp.ClientSession( + connector=connector, loop=self.loop, + ws_response_class=GremlinClientWebSocketResponse) + + self.gc = GremlinClient(url=self.uri, loop=self.loop, + username="stephen", password="password", + client_session=client_session) + + +class SaslGremlinClientSessionTest(GremlinClientSessionTest): + + def setUp(self): + self.uri = 'https://localhost:8182/' + self.loop = asyncio.new_event_loop() + asyncio.set_event_loop(None) + connector = aiohttp.TCPConnector(force_close=False, loop=self.loop, + verify_ssl=False) + + client_session = aiohttp.ClientSession( + connector=connector, loop=self.loop, + ws_response_class=GremlinClientWebSocketResponse) + + self.gc = GremlinClientSession(url=self.uri, + loop=self.loop, + username="stephen", password="password", + client_session=client_session) + + self.script1 = """v=graph.addVertex('name', 'Dave')""" + + self.script2 = "v.property('name')" + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/tests.py b/tests/tests.py index ae333979e36b5c88f2ce82ba437992ddc7404590..a062e9eb22ce264067a9fb27ab2a7d387646d453 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -13,6 +13,7 @@ from aiogremlin import (submit, GremlinConnector, GremlinClient, class SubmitTest(unittest.TestCase): def setUp(self): + self.uri = 'http://localhost:8182/' self.loop = asyncio.new_event_loop() asyncio.set_event_loop(None) @@ -23,7 +24,7 @@ class SubmitTest(unittest.TestCase): @asyncio.coroutine def go(): - resp = yield from submit("x + x", url='https://localhost:8182/', + resp = yield from submit("x + x", url=self.uri, bindings={"x": 4}, loop=self.loop, username="stephen", password="password") results = yield from resp.get() @@ -51,7 +52,7 @@ class SubmitTest(unittest.TestCase): @asyncio.coroutine def go2(): result = yield from submit( - "graph2.addVertex()", url='https://localhost:8182/', + "graph2.addVertex()", url=self.uri, rebindings={"graph2": "graph"}, loop=self.loop, username="stephen", password="password") resp = yield from result.get() @@ -66,6 +67,7 @@ class SubmitTest(unittest.TestCase): class GremlinClientTest(unittest.TestCase): def setUp(self): + self.uri = 'http://localhost:8182/' self.loop = asyncio.new_event_loop() asyncio.set_event_loop(None) connector = aiohttp.TCPConnector(force_close=False, loop=self.loop, @@ -75,7 +77,7 @@ class GremlinClientTest(unittest.TestCase): connector=connector, loop=self.loop, ws_response_class=GremlinClientWebSocketResponse) - self.gc = GremlinClient(url="https://localhost:8182/", loop=self.loop, + self.gc = GremlinClient(url=self.uri, loop=self.loop, username="stephen", password="password", client_session=client_session) @@ -161,6 +163,7 @@ class GremlinClientTest(unittest.TestCase): class GremlinClientSessionTest(unittest.TestCase): def setUp(self): + self.uri = 'http://localhost:8182/' self.loop = asyncio.new_event_loop() asyncio.set_event_loop(None) connector = aiohttp.TCPConnector(force_close=False, loop=self.loop, @@ -170,7 +173,7 @@ class GremlinClientSessionTest(unittest.TestCase): connector=connector, loop=self.loop, ws_response_class=GremlinClientWebSocketResponse) - self.gc = GremlinClientSession(url="https://localhost:8182/", + self.gc = GremlinClientSession(url=self.uri, loop=self.loop, username="stephen", password="password", client_session=client_session) @@ -194,71 +197,71 @@ class GremlinClientSessionTest(unittest.TestCase): results = self.loop.run_until_complete(go()) self.assertEqual(results[0].data[0]['value'], 'Dave') - # 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 - # try: - # results = self.loop.run_until_complete(go()) - # error = False - # except GremlinServerError: - # error = True - # self.assertTrue(error) - # - # 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 - # try: - # results = self.loop.run_until_complete(go()) - # error = False - # except GremlinServerError: - # error = True - # self.assertTrue(error) - # - # 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 - # try: - # results = self.loop.run_until_complete(go()) - # error = False - # except GremlinServerError: - # error = True - # self.assertTrue(error) - # - # 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()) - # + 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 + try: + results = self.loop.run_until_complete(go()) + error = False + except GremlinServerError: + error = True + self.assertTrue(error) + + 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 + try: + results = self.loop.run_until_complete(go()) + error = False + except GremlinServerError: + error = True + self.assertTrue(error) + + 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 + try: + results = self.loop.run_until_complete(go()) + error = False + except GremlinServerError: + error = True + self.assertTrue(error) + + 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()) + if __name__ == "__main__": unittest.main()