From 73ff6bdc2324df660b9131db1a14dd0ec5083437 Mon Sep 17 00:00:00 2001
From: davebshow <davebshow@gmail.com>
Date: Sun, 3 Jul 2016 01:57:30 -0400
Subject: [PATCH] added a force close option for async iterator

---
 goblin/gremlin_python_driver/driver.py | 5 ++++-
 tests/test_engine.py                   | 1 -
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/goblin/gremlin_python_driver/driver.py b/goblin/gremlin_python_driver/driver.py
index 33a723d..dc8b206 100644
--- a/goblin/gremlin_python_driver/driver.py
+++ b/goblin/gremlin_python_driver/driver.py
@@ -48,10 +48,11 @@ class Driver:
 
 class AsyncResponseIter:
 
-    def __init__(self, ws, loop, conn):
+    def __init__(self, ws, loop, conn, *, force_close=True):
         self._ws = ws
         self._loop = loop
         self._conn = conn
+        self._force_close = force_close
         self._closed = False
 
     async def __aiter__(self):
@@ -62,6 +63,8 @@ class AsyncResponseIter:
         if msg:
             return msg
         else:
+            if self._force_close:
+                await self.close()
             raise StopAsyncIteration
 
     async def close(self):
diff --git a/tests/test_engine.py b/tests/test_engine.py
index 4081dd6..c9bf716 100644
--- a/tests/test_engine.py
+++ b/tests/test_engine.py
@@ -85,7 +85,6 @@ class TestEngine(unittest.TestCase):
                 results += msg.data
                 print(len(results))
             self.assertTrue(len(results) > 1)
-            await stream.close()
             await engine.close()
 
         self.loop.run_until_complete(go())
-- 
GitLab