status-desktop/test/e2e/driver/context.py

34 lines
980 B
Python

import logging
import time
import allure
import squish
import configs
from driver.server import SquishServer
_logger = logging.getLogger(__name__)
@allure.step('Attaching to "{0}"')
def attach(aut_id: str, timeout_sec: int = configs.timeouts.PROCESS_TIMEOUT_SEC):
started_at = time.monotonic()
_logger.debug(f'Attaching to {aut_id}')
while True:
try:
context = squish.attachToApplication(aut_id, SquishServer().host, SquishServer().port)
_logger.info(f'AUT: {aut_id} attached')
return context
except RuntimeError as err:
_logger.debug(err)
time.sleep(1)
assert time.monotonic() - started_at < timeout_sec, f'Attach error: {aut_id}'
@allure.step('Detaching')
def detach():
for ctx in squish.applicationContextList():
ctx.detach()
assert squish.waitFor(lambda: not ctx.isRunning, configs.timeouts.APP_LOAD_TIMEOUT_MSEC)
_logger.info(f'All AUTs detached')