Implement Application.upgrade_charm method (#132)
[osm/N2VC.git] / tests / unit / test_connection.py
index 354b363..340264e 100644 (file)
@@ -3,6 +3,8 @@ import mock
 import pytest
 from collections import deque
 
+from websockets.exceptions import ConnectionClosed
+
 from .. import base
 from juju.client.connection import Connection
 
@@ -17,6 +19,8 @@ class WebsocketMock:
         pass
 
     async def recv(self):
+        if not self.responses:
+            raise ConnectionClosed(0, 'ran out of responses')
         return json.dumps(self.responses.popleft())
 
     async def close(self):
@@ -37,9 +41,12 @@ async def test_out_of_order(event_loop):
         {'request-id': 3},
     ]
     con._get_sll = mock.MagicMock()
-    with mock.patch('websockets.connect', base.AsyncMock(return_value=ws)):
-        await con.open()
-    actual_responses = []
-    for i in range(3):
-        actual_responses.append(await con.rpc({'version': 1}))
-    assert actual_responses == expected_responses
+    try:
+        with mock.patch('websockets.connect', base.AsyncMock(return_value=ws)):
+            await con.open()
+        actual_responses = []
+        for i in range(3):
+            actual_responses.append(await con.rpc({'version': 1}))
+        assert actual_responses == expected_responses
+    finally:
+        await con.close()