webrl/VAB-WebArena-Lite/tests/conftest.py
2025-04-23 17:01:18 +08:00

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()