status-desktop/test/e2e/gui/elements/text_edit.py

42 lines
1.1 KiB
Python

import logging
import allure
import configs
import driver
from gui.elements.object import QObject
LOG = logging.getLogger(__name__)
class TextEdit(QObject):
@property
@allure.step('Get current text {0}')
def text(self) -> str:
return str(self.object.text)
@text.setter
@allure.step('Type text {1} {0}')
def text(self, value: str):
if self.text:
self.clear()
self.type_text(value)
assert driver.waitFor(lambda: self.text == value, configs.timeouts.UI_LOAD_TIMEOUT_MSEC), \
f'Type text failed, value in field: "{self.text}", expected: {value}'
@allure.step('Type: {1} in {0}')
def type_text(self, value: str):
driver.type(self.object, value)
LOG.info('%s: value changed to "%s"', self, value)
return self
@allure.step('Clear {0}')
def clear(self, verify: bool = True):
self.object.clear()
if verify:
assert driver.waitFor(lambda: not self.text), \
f'Clear text field failed, value in field: "{self.text}"'
LOG.info('%s: cleared', self)
return self