0
我有需要socketio-server的測試系統(SUT)。該服務器將在某些功能中響應SUT。所以Socketio-server對我的SUT來說是必要的環境。如何從pytest夾具運行aiohttp應用程序
對於socketio-server,我選擇了使用python-socketio的aiohttp。功能
比如我socketio服務器:
from aiohttp import web
import socketio
sio = socketio.AsyncServer()
app = web.Application()
sio.attach(app)
@sio.on('commands')
async def message_handler(sid, msg):
if msg['data']['command'] == 'terminal_settings_info':
response_msg = {'handler': msg['handler'],
'data': {'result': 1,
'is_success': True,
'TerminalID': 5,
'request_id': msg['data']['request_id']}}
await sio.emit('commands', response_msg)
elif msg['data']['command'] == 'get_agent_info':
response_msg = {'handler': msg['handler'],
'data': {'result': 1,
'is_success': True,
'terminal_address': 'Zelenograd',
'agent_support_phone': '8-888-88-88-88',
'mf_retail': True,
'request_id': msg['data']['request_id']}}
await sio.emit('commands', response_msg)
else:
raise ValueError('Unknown request.\nMessage: ' + msg.__repr__())
web.run_app(app, host='127.0.0.1', port=1234)
我想設置從pytest燈具測試完成後,該socketio服務器之前運行測試和拆卸。所以,這個服務器必須非阻塞pytest線程。 這是我的目的。 我該怎麼做?
我很擅長Python中的pytest和syncrhonous代碼執行,但是用於異步編程(asyncio,aiohttp)的newbi和使用線程,子進程或多處理的newbi。