# -*- coding: utf-8 -*- """Pytest configuration for Playwright E2E tests.""" import pytest import os import sys # Add src to path sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', 'src')) @pytest.fixture(scope="session") def app_server() -> str: """Get the base URL for E2E testing. Uses environment variable E2E_BASE_URL or defaults to production server. """ return os.environ.get('E2E_BASE_URL', 'http://127.0.0.1:8080') @pytest.fixture(scope="session") def browser_context_args(browser_context_args): """Configure browser context for tests.""" return { **browser_context_args, "viewport": {"width": 1280, "height": 720}, "locale": "zh-TW", } def pytest_configure(config): """Add custom markers for E2E tests.""" config.addinivalue_line( "markers", "e2e: mark test as end-to-end test (requires running server)" ) config.addinivalue_line( "markers", "redis: mark test as requiring Redis connection" ) @pytest.fixture(scope="session") def api_base_url(app_server): """Get the API base URL.""" return f"{app_server}/api" @pytest.fixture(scope="session") def health_url(app_server): """Get the health check URL.""" return f"{app_server}/health"