HomeDashboard/.venv/lib/python3.12/site-packages/nicegui/testing/general_fixtures.py
2026-01-03 14:54:18 +01:00

39 lines
1.2 KiB
Python

from pathlib import Path
from typing import Optional
import pytest
from . import general
# pylint: disable=redefined-outer-name
def pytest_addoption(parser: pytest.Parser) -> None:
"""Add pytest option for main file."""
parser.addini('main_file', 'main file', default='main.py')
def pytest_configure(config: pytest.Config) -> None:
"""Register the "nicegui_main_file" marker."""
config.addinivalue_line('markers', 'nicegui_main_file: specify the main file for the test')
def get_path_to_main_file(request: pytest.FixtureRequest) -> Optional[Path]:
"""Get the path to the main file from the test marker or global config."""
marker = next((m for m in request.node.iter_markers('nicegui_main_file')), None)
main_file = marker.args[0] if marker else request.config.getini('main_file')
if not main_file:
return None
assert request.config.inipath is not None
path = (request.config.inipath.parent / main_file).resolve()
if not path.is_file():
raise FileNotFoundError(f'Main file not found: {path}')
return path
@pytest.fixture
def nicegui_reset_globals():
"""Reset the global state of the NiceGUI package."""
with general.nicegui_reset_globals():
yield