fix(test): attach caplog handler to non-propagating explainer logger
Browse filesWithout this, the regression-detection branch in the live integration
test was silently dead — caplog never received explainer log records
(propagate=False on src.core.logger.get_logger), so every template
fallback hit pytest.fail instead of pytest.skip.
tests/llm/test_explainer.py
CHANGED
|
@@ -275,8 +275,15 @@ class TestLiveOpenRouterLLM:
|
|
| 275 |
import logging
|
| 276 |
from src.llm import explainer as ex
|
| 277 |
|
| 278 |
-
|
| 279 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 280 |
|
| 281 |
# Flaky-network safety net: only skip when we have evidence the
|
| 282 |
# template fallback fired due to transient infra (rate-limit,
|
|
|
|
| 275 |
import logging
|
| 276 |
from src.llm import explainer as ex
|
| 277 |
|
| 278 |
+
# The explainer's logger has propagate=False (see src/core/logger.py),
|
| 279 |
+
# so caplog's root-level handler never sees its records. Attach the
|
| 280 |
+
# caplog handler directly to bypass propagation.
|
| 281 |
+
ex.logger.addHandler(caplog.handler)
|
| 282 |
+
try:
|
| 283 |
+
with caplog.at_level(logging.INFO, logger="src.llm.explainer"):
|
| 284 |
+
result = ex.explain(_payload(), modality="bbb")
|
| 285 |
+
finally:
|
| 286 |
+
ex.logger.removeHandler(caplog.handler)
|
| 287 |
|
| 288 |
# Flaky-network safety net: only skip when we have evidence the
|
| 289 |
# template fallback fired due to transient infra (rate-limit,
|