55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
from __future__ import annotations
|
|
|
|
from unittest.mock import MagicMock
|
|
|
|
from core.models import ActiveApp
|
|
from driver.android_driver import AndroidDriver
|
|
from driver.wda_driver import WDADriver
|
|
from tools.ui_tree import get_ui_tree
|
|
from device.manager import DeviceManager
|
|
from tests.fakes import FakeDriver
|
|
|
|
|
|
def test_android_driver_reads_current_package_and_activity() -> None:
|
|
driver = AndroidDriver()
|
|
driver._client = MagicMock()
|
|
driver._client.current_package = "com.example.mobile"
|
|
driver._client.current_activity = ".MainActivity"
|
|
|
|
assert driver.active_app() == ActiveApp(
|
|
platform="android",
|
|
package="com.example.mobile",
|
|
activity=".MainActivity",
|
|
)
|
|
|
|
|
|
def test_wda_driver_reads_current_bundle_id() -> None:
|
|
driver = WDADriver()
|
|
driver._client = MagicMock()
|
|
driver._client.execute_script.return_value = {
|
|
"bundleId": "com.example.mobile",
|
|
"pid": 123,
|
|
}
|
|
|
|
assert driver.active_app() == ActiveApp(
|
|
platform="ios",
|
|
bundle_id="com.example.mobile",
|
|
)
|
|
driver._client.execute_script.assert_called_once_with("mobile: activeAppInfo")
|
|
|
|
|
|
def test_ui_tree_keeps_list_response_without_active_app_option() -> None:
|
|
manager = DeviceManager()
|
|
manager.register_device(
|
|
"phone-1",
|
|
lambda: FakeDriver(
|
|
active_app=ActiveApp(platform="ios", bundle_id="com.example.mobile")
|
|
),
|
|
)
|
|
manager.connect("phone-1")
|
|
|
|
response = get_ui_tree("phone-1", manager=manager)
|
|
|
|
assert isinstance(response, list)
|
|
assert any(node["text"] == "Search" for node in response)
|