예제 #1
0
 def test_client(self):
     sqs = Mock(name='sqs')
     x = AsyncConnection(sqs)
     assert x._httpclient is http.get_client()
     client = Mock(name='client')
     y = AsyncConnection(sqs, http_client=client)
     assert y._httpclient is client
예제 #2
0
 def test_get_http_connection(self):
     sqs = Mock(name='sqs')
     x = AsyncConnection(sqs)
     assert isinstance(
         x.get_http_connection(),
         AsyncHTTPSConnection,
     )
     conn = x.get_http_connection()
     assert conn.http_client is x._httpclient
예제 #3
0
async def fake_server(event_loop):
    server = FakeConnectionHmip(loop=event_loop,
                                base_url='test.homematic.com',
                                port=None)
    connector = await server.start()
    async with aiohttp.ClientSession(connector=connector,
                                     loop=event_loop) as session:
        connection = AsyncConnection(event_loop, session=session)
        connection.headers[ATTR_AUTH_TOKEN] = ''
        connection.headers[ATTR_CLIENT_AUTH] = ''
        yield connection
    await server.stop()
예제 #4
0
    def test_get_http_connection(self):
        x = AsyncConnection(client=Mock(name='client'))
        self.assertIsInstance(
            x.get_http_connection('aws.vandelay.com', 80, False),
            AsyncHTTPConnection,
        )
        self.assertIsInstance(
            x.get_http_connection('aws.vandelay.com', 443, True),
            AsyncHTTPSConnection,
        )

        conn = x.get_http_connection('aws.vandelay.com', 80, False)
        self.assertIs(conn.http_client, x._httpclient)
        self.assertEqual(conn.host, 'aws.vandelay.com')
        self.assertEqual(conn.port, 80)
예제 #5
0
    def test_get_http_connection(self):
        x = AsyncConnection(client=Mock(name='client'))
        self.assertIsInstance(
            x.get_http_connection('aws.vandelay.com', 80, False),
            AsyncHTTPConnection,
        )
        self.assertIsInstance(
            x.get_http_connection('aws.vandelay.com', 443, True),
            AsyncHTTPSConnection,
        )

        conn = x.get_http_connection('aws.vandelay.com', 80, False)
        self.assertIs(conn.http_client, x._httpclient)
        self.assertEqual(conn.host, 'aws.vandelay.com')
        self.assertEqual(conn.port, 80)
예제 #6
0
    def test_get_http_connection(self):
        x = AsyncConnection(client=Mock(name='client'))
        assert isinstance(
            x.get_http_connection('aws.vandelay.com', 80, False),
            AsyncHTTPConnection,
        )
        assert isinstance(
            x.get_http_connection('aws.vandelay.com', 443, True),
            AsyncHTTPSConnection,
        )

        conn = x.get_http_connection('aws.vandelay.com', 80, False)
        assert conn.http_client is x._httpclient
        assert conn.host == 'aws.vandelay.com'
        assert conn.port == 80
예제 #7
0
async def fake_lookup_server(event_loop):
    server = FakeLookupHmip(loop=event_loop,
                            base_url='lookup.homematic.com',
                            port=48335)
    connector = await server.start()
    async with aiohttp.ClientSession(connector=connector,
                                     loop=event_loop) as session:
        connection = AsyncConnection(event_loop, session=session)
        yield connection
    await server.stop()
예제 #8
0
async def main(loop):
    logging.basicConfig(level=logging.DEBUG)
    fake_ws = FakeWebsocketHmip(loop=loop, base_url='ws.homematic.com')
    connector = await fake_ws.start()

    incoming = {}

    def parser(*args, **kwargs):
        incoming['test'] = None

    async with aiohttp.ClientSession(connector=connector, loop=loop) as session:
        connection = AsyncConnection(loop, session)

        connection.headers[ATTR_AUTH_TOKEN] = 'auth_token'
        connection.headers[ATTR_CLIENT_AUTH] = 'client_auth'
        connection._urlWebSocket = 'wss://ws.homematic.com/'
        try:
            ws_loop = await connection.ws_connect(parser)
            await ws_loop
        except Exception as err:
            pass
        print(incoming)

        await fake_ws.stop()
async def main(loop):
    logging.basicConfig(level=logging.DEBUG)
    fake_ws = FakeWebsocketHmip(loop=loop, base_url='ws.homematic.com')
    connector = await fake_ws.start()

    async with aiohttp.ClientSession(connector=connector,
                                     loop=loop) as session:
        connection = AsyncConnection(loop, session)

        # async with session.get('https://lookup.homematic.com:48335/getHost',
        #                        params={'access_token': token}) as resp:
        #     print(await resp.json())
        connection.headers[ATTR_AUTH_TOKEN] = 'auth_token'
        connection.headers[ATTR_CLIENT_AUTH] = 'client_auth'
        connection._urlWebSocket = 'wss://ws.homematic.com/'
        # await connection._listen_for_incoming_websocket_data(
        #     lambda x: print(x))
        connection.listen_for_websocket_data(lambda x: print(x))
        # await asyncio.sleep(1)
        # await fake_ws.close_connection()
        await asyncio.sleep(600)

        await fake_ws.stop()
예제 #10
0
 def __init__(self, loop, websession=None):
     super().__init__(connection=AsyncConnection(loop, websession))
예제 #11
0
def async_connection(event_loop):
    _connection = AsyncConnection(event_loop)
    yield _connection
    _connection._websession.close()
예제 #12
0
def fake_connection(event_loop):
    _connection = AsyncConnection(event_loop)
    _connection.api_call = AsyncMock(return_value='called')
    return _connection
예제 #13
0
 def test_client(self):
     x = AsyncConnection()
     self.assertIs(x._httpclient, http.get_client())
     client = Mock(name='client')
     y = AsyncConnection(http_client=client)
     self.assertIs(y._httpclient, client)
예제 #14
0
 def test_when_boto_missing(self):
     with set_module_symbol('kombu.async.aws.connection', 'boto', None):
         with self.assertRaises(ImportError):
             AsyncConnection(Mock(name='client'))
예제 #15
0
 def test_client(self):
     x = AsyncConnection()
     assert x._httpclient is http.get_client()
     client = Mock(name='client')
     y = AsyncConnection(http_client=client)
     assert y._httpclient is client
예제 #16
0
 def test_when_boto_missing(self, patching):
     patching('kombu.async.aws.connection.boto', None)
     with pytest.raises(ImportError):
         AsyncConnection(Mock(name='client'))