Spaces:
Paused
Paused
| """Fixtures for launcher tests.""" | |
| import logging | |
| import os | |
| from unittest.mock import patch | |
| import pytest | |
| def _suppress_launcher_logging_session(): | |
| """Suppress CamoufoxLauncher logger during launcher tests (session-scoped). | |
| The CamoufoxProcessManager.cleanup() method logs extensively during atexit | |
| cleanup. When tests in this directory instantiate Launcher (which registers | |
| atexit hooks), the cleanup may run after pytest has finished cleaning up | |
| fixtures, causing logging errors. | |
| This session-scoped fixture ensures the logger is suppressed before any | |
| tests run and restored after the session ends. | |
| """ | |
| logger = logging.getLogger("CamoufoxLauncher") | |
| original_level = logger.level | |
| logger.setLevel(logging.CRITICAL + 1) # Suppress all logs | |
| try: | |
| yield | |
| finally: | |
| logger.setLevel(original_level) | |
| def clean_launcher_env(): | |
| """Provide isolated environment for launcher tests. | |
| Clears all environment variables but preserves LAUNCH_MODE=test | |
| for consistency with pytest-env global settings. | |
| Use this when testing argument parsing defaults or environment | |
| variable handling where you need a clean slate. | |
| """ | |
| with patch.dict(os.environ, {"LAUNCH_MODE": "test"}, clear=True): | |
| yield | |