Coverage for kea/harmonyos_pdl_driver.py: 74%
42 statements
« prev ^ index » next coverage.py v7.6.9, created at 2024-12-22 16:05 +0800
« prev ^ index » next coverage.py v7.6.9, created at 2024-12-22 16:05 +0800
1"""
2This is the PDL (Property Desciption Language) for HarmonyOS, which is one
3kind of DSL (Domain Sepcific Language).
4Please checkout Kea's doc and its paper for the details.
5"""
7from hmdriver2._client import HmClient
8from hmdriver2.driver import Driver
9from hmdriver2._uiobject import UiObject
10from typing import TYPE_CHECKING, Type
11if TYPE_CHECKING:
12 pass
14from typing import Any, Union, TYPE_CHECKING
15if TYPE_CHECKING:
16 from kea.droidbot import DroidBot
18import time
20class HarmonyOS_PDL_Driver(Driver):
22 def __init__(self, delay=1, serial=None) -> None:
23 self.delay = delay
24 super().__init__(serial=serial)
26 def __new__(cls: Type[Any], serial: str) -> Any:
27 return super().__new__(cls, serial)
29 def __call__(self, **kwargs: Any) -> "Ui":
30 return Ui(self, **kwargs)
32 def set_droidbot(self, droidbot:"DroidBot"):
33 self.droidbot = droidbot
35 def rotate(self, mode: str):
36 self.droidbot.device.save_screenshot_for_report(event_name="rotate", event = self)
37 super().set_orientation(mode)
38 time.sleep(1)
40 def press(self, key: Union[int, str], meta=None):
41 self.droidbot.device.save_screenshot_for_report(event_name="press", event = key)
42 super().press(key, meta)
45class Ui(UiObject):
46 def __init__(self, session:"HarmonyOS_PDL_Driver", **kwargs) -> None:
47 client = session._client
48 droidbot = session.droidbot
49 self.droidbot = droidbot
50 super().__init__(client, **kwargs)
52 def click(self, offset=None):
53 self.droidbot.device.save_screenshot_for_report(event_name="click", event = self)
54 super().click()
56 def long_click(self, duration: float = 0.5):
57 self.droidbot.device.save_screenshot_for_report(event_name="long_click", event = self)
58 super().long_click()
60 def input_text(self, text):
61 self.droidbot.device.save_screenshot_for_report(event_name="input_text " + text, event = self)
62 super().input_text(text)