4 from collections
import deque
6 from websockets
.exceptions
import ConnectionClosed
9 from juju
.client
.connection
import Connection
13 def __init__(self
, responses
):
15 self
.responses
= deque(responses
)
18 async def send(self
, message
):
22 if not self
.responses
:
23 raise ConnectionClosed(0, 'no reason')
24 return json
.dumps(self
.responses
.popleft())
26 async def close(self
):
31 async def test_out_of_order(event_loop
):
32 con
= Connection(*[None]*4)
38 expected_responses
= [
43 con
._get
_sll
= mock
.MagicMock()
44 with mock
.patch('websockets.connect', base
.AsyncMock(return_value
=ws
)):
48 actual_responses
.append(await con
.rpc({'version': 1}))
49 assert actual_responses
== expected_responses