X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=modules%2Flibjuju%2Ftests%2Funit%2Ftest_connection.py;fp=modules%2Flibjuju%2Ftests%2Funit%2Ftest_connection.py;h=0000000000000000000000000000000000000000;hp=0925d847a9ebf37c3b17f038b35414b444400991;hb=5aa242fe2d61c2da9fdb29ed65029f3e27b6966d;hpb=e2051cca7dac12aa09f6ed33555dcc4548c4b52b diff --git a/modules/libjuju/tests/unit/test_connection.py b/modules/libjuju/tests/unit/test_connection.py deleted file mode 100644 index 0925d84..0000000 --- a/modules/libjuju/tests/unit/test_connection.py +++ /dev/null @@ -1,65 +0,0 @@ -import asyncio -import json -from collections import deque - -import mock -from juju.client.connection import Connection -from websockets.exceptions import ConnectionClosed - -import pytest - -from .. import base - - -class WebsocketMock: - def __init__(self, responses): - super().__init__() - self.responses = deque(responses) - self.open = True - - async def send(self, message): - pass - - async def recv(self): - if not self.responses: - await asyncio.sleep(1) # delay to give test time to finish - raise ConnectionClosed(0, 'ran out of responses') - return json.dumps(self.responses.popleft()) - - async def close(self): - self.open = False - - -@pytest.mark.asyncio -async def test_out_of_order(event_loop): - ws = WebsocketMock([ - {'request-id': 1}, - {'request-id': 3}, - {'request-id': 2}, - ]) - expected_responses = [ - {'request-id': 1}, - {'request-id': 2}, - {'request-id': 3}, - ] - minimal_facades = [{'name': 'Pinger', 'versions': [1]}] - con = None - try: - with \ - mock.patch('websockets.connect', base.AsyncMock(return_value=ws)), \ - mock.patch( - 'juju.client.connection.Connection.login', - base.AsyncMock(return_value={'response': { - 'facades': minimal_facades, - }}), - ), \ - mock.patch('juju.client.connection.Connection._get_ssl'), \ - mock.patch('juju.client.connection.Connection._pinger', base.AsyncMock()): - con = await Connection.connect('0.1.2.3:999') - actual_responses = [] - for i in range(3): - actual_responses.append(await con.rpc({'version': 1})) - assert actual_responses == expected_responses - finally: - if con: - await con.close()