parent
791ff10114
commit
294119c08a
|
@ -1,17 +1,18 @@
|
|||
import time
|
||||
|
||||
import squishtest # noqa
|
||||
|
||||
import configs
|
||||
from . import server, context, objects_access, toplevel_window, aut, atomacos, mouse
|
||||
from . import server, context, objects_access, toplevel_window, aut, mouse
|
||||
from .squish_api import *
|
||||
|
||||
imports = {module.__name__: module for module in [
|
||||
atomacos,
|
||||
aut,
|
||||
context,
|
||||
objects_access,
|
||||
mouse,
|
||||
server,
|
||||
toplevel_window
|
||||
|
||||
]}
|
||||
|
||||
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
import time
|
||||
from copy import deepcopy
|
||||
|
||||
import configs.timeouts
|
||||
import driver
|
||||
|
||||
if configs.system.IS_MAC:
|
||||
from atomacos._a11y import _running_apps_with_bundle_id
|
||||
import atomacos
|
||||
|
||||
BUNDLE_ID = 'im.Status.NimStatusClient'
|
||||
|
||||
|
||||
# https://pypi.org/project/atomacos/
|
||||
|
||||
|
||||
def attach_atomac(timeout_sec: int = configs.timeouts.UI_LOAD_TIMEOUT_SEC):
|
||||
def from_bundle_id(bundle_id):
|
||||
"""
|
||||
Get the top level element for the application with the specified
|
||||
bundle ID, such as com.vmware.fusion.
|
||||
"""
|
||||
apps = _running_apps_with_bundle_id(bundle_id)
|
||||
if not apps:
|
||||
raise ValueError(
|
||||
"Specified bundle ID not found in " "running apps: %s" % bundle_id
|
||||
)
|
||||
return atomacos.NativeUIElement.from_pid(apps[-1].processIdentifier())
|
||||
|
||||
pid = driver.currentApplicationContext().pid
|
||||
atomator = atomacos.getAppRefByPid(pid)
|
||||
started_at = time.monotonic()
|
||||
while not hasattr(atomator, 'AXMainWindow'):
|
||||
time.sleep(1)
|
||||
assert time.monotonic() - started_at < timeout_sec, f'Attach error: {BUNDLE_ID}'
|
||||
return atomator
|
||||
|
||||
|
||||
def find_object(object_name: dict):
|
||||
_object_name = deepcopy(object_name)
|
||||
if 'container' in _object_name:
|
||||
parent = find_object(_object_name['container'])
|
||||
del _object_name['container']
|
||||
else:
|
||||
return attach_atomac().windows()[0]
|
||||
|
||||
assert parent is not None, f'Object not found: {object_name["container"]}'
|
||||
_object = parent.findFirst(**_object_name)
|
||||
assert _object is not None, f'Object not found: {_object_name}'
|
||||
return _object
|
||||
|
||||
|
||||
def wait_for_object(object_name: dict, timeout_sec: int = configs.timeouts.UI_LOAD_TIMEOUT_SEC):
|
||||
started_at = time.monotonic()
|
||||
while True:
|
||||
try:
|
||||
return find_object(object_name)
|
||||
except AssertionError as err:
|
||||
if time.monotonic() - started_at > timeout_sec:
|
||||
raise LookupError(f'Object: {object_name} not found. Error: {err}')
|
|
@ -0,0 +1,12 @@
|
|||
import time
|
||||
|
||||
import configs.timeouts
|
||||
|
||||
|
||||
def waitFor(condition, timeout_msec: int = configs.timeouts.UI_LOAD_TIMEOUT_MSEC) -> bool:
|
||||
started_at = time.monotonic()
|
||||
while not condition():
|
||||
time.sleep(1)
|
||||
if time.monotonic() - started_at > timeout_msec/1000:
|
||||
return False
|
||||
return True
|
|
@ -15,12 +15,12 @@ class ColorSelectPopup(BasePopup):
|
|||
|
||||
@allure.step('Wait until appears {0}')
|
||||
def wait_until_appears(self, timeout_msec: int = configs.timeouts.UI_LOAD_TIMEOUT_MSEC):
|
||||
self._hex_color_text_edit.wait_until_appears()
|
||||
self._hex_color_text_edit.wait_until_appears(timeout_msec)
|
||||
return self
|
||||
|
||||
@allure.step('Wait until hidden {0}')
|
||||
def wait_until_hidden(self, timeout_msec: int = configs.timeouts.UI_LOAD_TIMEOUT_MSEC):
|
||||
self._hex_color_text_edit.wait_until_hidden()
|
||||
self._hex_color_text_edit.wait_until_hidden(timeout_msec)
|
||||
|
||||
@allure.step('Select color {1}')
|
||||
def select_color(self, value: str):
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import allure
|
||||
|
||||
from gui.components.base_popup import BasePopup
|
||||
from gui.elements.button import Button
|
||||
from gui.elements.object import QObject
|
||||
|
||||
|
@ -19,4 +18,3 @@ class SigningPhrasePopup(QObject):
|
|||
@allure.step('Verify if the signing phrase popup is visible')
|
||||
def is_ok_got_it_button_visible(self):
|
||||
return self._ok_got_it_button.is_visible
|
||||
|
||||
|
|
|
@ -179,7 +179,7 @@ class SyncResultView(OnboardingView):
|
|||
return device_synced_notifications
|
||||
|
||||
@allure.step('Wait until appears {0}')
|
||||
def wait_until_appears(self, timeout_msec: int = configs.timeouts.UI_LOAD_TIMEOUT_MSEC):
|
||||
def wait_until_appears(self, timeout_msec: int = 10000):
|
||||
self._sign_in_button.wait_until_appears(timeout_msec)
|
||||
return self
|
||||
|
||||
|
|
Loading…
Reference in New Issue