|
4 | 4 | from pathlib import Path |
5 | 5 | from typing import List |
6 | 6 |
|
7 | | -from .config import setup_logging, log_test_start, log_test_end |
8 | | -from .config.logging_config import get_logger |
9 | | -from .core import EnvironmentSwitcher |
| 7 | +from .config import get_config, setup_logging, log_test_start, log_test_end |
| 8 | +from .config.logging_config import get_logger, LoggingConfig |
10 | 9 | from .utils.cloud_reporter import CloudResultReporter |
11 | 10 | from .utils.screenshot import save_screenshot, save_page_source |
12 | 11 |
|
|
23 | 22 |
|
24 | 23 | def pytest_configure(config): |
25 | 24 | global _logging_setup |
26 | | - _logging_setup = setup_logging() |
27 | 25 |
|
28 | 26 | # Normalize CLI --env to CURRENT_TEST_ENVIRONMENT so all components agree |
29 | 27 | try: |
30 | 28 | cli_env = getattr(config.option, "env", None) |
31 | 29 | if cli_env: |
32 | 30 | os.environ["CURRENT_TEST_ENVIRONMENT"] = cli_env |
| 31 | + os.environ["TEST_ENVIRONMENT"] = cli_env |
33 | 32 | except Exception: |
34 | 33 | # Do not block test runs if normalization fails |
35 | 34 | pass |
36 | 35 |
|
37 | | - # Use YAML-based configuration |
38 | | - switcher = EnvironmentSwitcher() |
39 | | - env_name = ( |
40 | | - os.getenv("CURRENT_TEST_ENVIRONMENT") or switcher.auto_detect_environment() |
41 | | - ) |
42 | | - |
43 | 36 | try: |
44 | | - env_config = switcher.switch_to(env_name) |
| 37 | + config_obj = get_config(refresh=True) |
45 | 38 |
|
46 | | - # Use directories from YAML config |
47 | | - reports_dir = Path(env_config.directories.get("reports", "reports")) |
48 | | - enable_xml_report = env_config.logging.get("enable_xml_report", True) |
49 | | - enable_html_report = env_config.logging.get("enable_html_report", True) |
| 39 | + reports_dir = Path(config_obj.reports_dir) |
| 40 | + logs_dir = Path(config_obj.logs_dir) |
| 41 | + enable_xml_report = config_obj.enable_xml_report |
| 42 | + enable_html_report = config_obj.enable_html_report |
| 43 | + |
| 44 | + logging_cfg = LoggingConfig( |
| 45 | + logs_dir=str(logs_dir), |
| 46 | + console_level=config_obj.logging_level, |
| 47 | + file_level=config_obj.logging_level, |
| 48 | + ) |
| 49 | + _logging_setup = setup_logging(logging_cfg) |
50 | 50 |
|
51 | 51 | logger = get_logger("conftest") |
52 | | - logger.info("Using reports directory from %s config: %s", env_name, reports_dir) |
| 52 | + logger.info( |
| 53 | + "Using reports directory from %s config: %s", |
| 54 | + config_obj.environment_name, |
| 55 | + reports_dir, |
| 56 | + ) |
53 | 57 |
|
54 | 58 | except Exception as e: |
55 | 59 | # Simplified fallback using defaults |
56 | 60 | reports_dir = Path("reports") |
57 | 61 | enable_xml_report = True |
58 | 62 | enable_html_report = True |
59 | 63 |
|
| 64 | + _logging_setup = setup_logging() |
| 65 | + |
60 | 66 | logger = get_logger("conftest") |
61 | 67 | logger.warning("Using default configuration: %s", e) |
62 | 68 | logger.warning("Ensure YAML config files are properly set up") |
63 | 69 |
|
64 | | - reports_dir.mkdir(exist_ok=True) |
| 70 | + reports_dir.mkdir(parents=True, exist_ok=True) |
65 | 71 |
|
66 | 72 | timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") |
67 | 73 |
|
@@ -178,16 +184,9 @@ def pytest_runtest_makereport(item, call): |
178 | 184 | if driver: |
179 | 185 | # Resolve screenshots directory from environment config; fallback to 'screenshots' |
180 | 186 | try: |
181 | | - env_switcher = EnvironmentSwitcher() |
182 | | - env_name = ( |
183 | | - os.getenv("CURRENT_TEST_ENVIRONMENT") |
184 | | - or env_switcher.auto_detect_environment() |
185 | | - ) |
186 | | - env_config = env_switcher.switch_to(env_name) |
187 | | - screenshots_dir = env_config.directories.get( |
188 | | - "screenshots", "screenshots" |
189 | | - ) |
190 | | - logs_dir = env_config.directories.get("logs", "logs") |
| 187 | + config_obj = get_config() |
| 188 | + screenshots_dir = config_obj.screenshots_dir or "screenshots" |
| 189 | + logs_dir = config_obj.logs_dir or "logs" |
191 | 190 | except Exception: |
192 | 191 | screenshots_dir = "screenshots" |
193 | 192 | logs_dir = "logs" |
|
0 commit comments