test-runner/fixtures.py (101 lines of code) (raw):

# Copyright (c) Microsoft. All rights reserved. # Licensed under the MIT license. See LICENSE file in the project root for # full license information. import pytest import pytest_asyncio from connections import get_adapter, create_client, cleanup_adapter import sample_content from horton_settings import settings from horton_logging import logger try: async_fixture = pytest_asyncio.fixture except AttributeError: async_fixture = pytest.fixture @async_fixture async def eventhub(event_loop): # we need the event_loop fixture so pytest_async creates the event loop before celling this. # Otherwise we get errors realted to mis-matched event loops when cleaning up this object. obj = settings.eventhub try: yield await get_adapter(obj) finally: await cleanup_adapter(obj) @async_fixture async def registry(): obj = settings.registry try: yield await get_adapter(obj) finally: await cleanup_adapter(obj) @async_fixture async def service(): obj = settings.service try: yield await get_adapter(obj) finally: await cleanup_adapter(obj) @async_fixture async def friend(): obj = settings.friend_module if obj.device_id and obj.module_id: adapter = await get_adapter(obj) await create_client(obj) else: adapter = None try: yield adapter finally: await cleanup_adapter(obj) @async_fixture async def test_module(): obj = settings.test_module if obj.device_id and obj.module_id: adapter = await get_adapter(obj) await create_client(obj) else: adapter = None try: yield adapter finally: await cleanup_adapter(obj) @async_fixture async def leaf_device(): obj = settings.leaf_device if obj.device_id: adapter = await get_adapter(obj) await create_client(obj) else: adapter = None try: yield adapter finally: await cleanup_adapter(obj) @async_fixture async def test_device(): obj = settings.test_device if obj.device_id: adapter = await get_adapter(obj) await create_client(obj) else: adapter = None try: yield adapter finally: await cleanup_adapter(obj) @async_fixture async def system_control(): adapter = getattr(settings.system_control, "adapter", None) try: yield adapter finally: if adapter: logger("system_control finalizer".center(132, "-")) await adapter.reconnect_network() @pytest.fixture( scope="function", params=[ pytest.param({}, id="empty object"), pytest.param(sample_content.make_message_payload(1), id="smallest object"), pytest.param(sample_content.make_message_payload(40), id="small object"), pytest.param(sample_content.make_message_payload(63 * 1024), id="63K object"), pytest.param(sample_content.make_message_payload(127 * 1024), id="127K object"), pytest.param(sample_content.make_message_payload(255 * 1024), id="255K object"), ], ) def telemetry_payload(request): return request.param