87 lines
2.0 KiB
Python
87 lines
2.0 KiB
Python
from typing import AsyncGenerator, Generator
|
|
|
|
import pytest
|
|
import pytest_asyncio
|
|
|
|
from browser_env import AsyncScriptBrowserEnv, ScriptBrowserEnv
|
|
|
|
HEADLESS = True
|
|
SLOW_MO = 0
|
|
|
|
|
|
@pytest.fixture(scope="function")
|
|
def script_browser_env() -> Generator[ScriptBrowserEnv, None, None]:
|
|
"""Create a ScriptBrowserEnv instance for testing.
|
|
It is automatically closed after the test session.
|
|
This is helpful when the test failed and the browser is still open.
|
|
"""
|
|
env = ScriptBrowserEnv(
|
|
headless=HEADLESS,
|
|
slow_mo=SLOW_MO,
|
|
)
|
|
yield env
|
|
env.close()
|
|
|
|
|
|
@pytest.fixture(scope="function")
|
|
def current_viewport_script_browser_env() -> Generator[
|
|
ScriptBrowserEnv, None, None
|
|
]:
|
|
env = ScriptBrowserEnv(
|
|
headless=HEADLESS,
|
|
slow_mo=SLOW_MO,
|
|
current_viewport_only=True,
|
|
)
|
|
yield env
|
|
env.close()
|
|
|
|
|
|
@pytest.fixture(scope="function")
|
|
def accessibility_tree_script_browser_env() -> Generator[
|
|
ScriptBrowserEnv, None, None
|
|
]:
|
|
env = ScriptBrowserEnv(
|
|
headless=HEADLESS,
|
|
slow_mo=SLOW_MO,
|
|
observation_type="accessibility_tree",
|
|
)
|
|
yield env
|
|
env.close()
|
|
|
|
|
|
@pytest.fixture(scope="function")
|
|
def accessibility_tree_script_browser_env_with_sleep() -> Generator[
|
|
ScriptBrowserEnv, None, None
|
|
]:
|
|
env = ScriptBrowserEnv(
|
|
headless=HEADLESS,
|
|
slow_mo=SLOW_MO,
|
|
observation_type="accessibility_tree",
|
|
sleep_after_execution=1.0
|
|
)
|
|
yield env
|
|
env.close()
|
|
|
|
|
|
@pytest.fixture(scope="function")
|
|
def accessibility_tree_current_viewport_script_browser_env() -> Generator[
|
|
ScriptBrowserEnv, None, None
|
|
]:
|
|
env = ScriptBrowserEnv(
|
|
headless=HEADLESS,
|
|
slow_mo=SLOW_MO,
|
|
observation_type="accessibility_tree",
|
|
current_viewport_only=True,
|
|
)
|
|
yield env
|
|
env.close()
|
|
|
|
|
|
@pytest_asyncio.fixture(scope="function", autouse=True)
|
|
async def async_script_browser_env() -> AsyncGenerator[
|
|
AsyncScriptBrowserEnv, None
|
|
]:
|
|
env = AsyncScriptBrowserEnv(headless=HEADLESS, slow_mo=SLOW_MO)
|
|
yield env
|
|
await env.aclose()
|