Graph-check unit tests fail under direct pytest because logger fixtures assume Bazel runfiles
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
- #1000 von @AlexanderLanin — ohne Merge geschlossen
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 78/100
Rechercherichtung
Beginne damit, .venv_docs/bin/python -m pytest src/extensions/score_metamodel/tests/test_graph_checks.py -q mit nicht gesetzten RUNFILES_DIR und RUNFILES_MANIFEST_FILE auszuführen, um die sechs Fehler zu reproduzieren. Lies fake_check_logger() in src/extensions/score_metamodel/tests/__init__.py und CheckLogger._location() in src/extensions/score_metamodel/log.py; die Fixture liefert ein MagicMock-Pfadpräfix, das Nicht-Bazel-Locations offenlegen. Fertig bedeutet, dass alle sechs Location-Assertions unter direktem pytest bestehen, während bazel test //src/extensions/score_metamodel:unit_tests weiterhin besteht.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Graph-check unit tests fail when invoked directly through pytest, although the Bazel unit-test target passes. Developers should be able to run these tests through pytest, including from an IDE, without a Bazel runfiles environment.
Reproduction
Reproduced on a clean snapshot of main at 946fd135045841db63e18ffd532374963e84a220, using Python 3.12.12 and pytest 9.1.1.
After preparing the development environment:
bazel run //:ide_support
.venv_docs/bin/python -m pytest src/extensions/score_metamodel/tests/test_graph_checks.py -q
Run from a normal shell with RUNFILES_DIR and RUNFILES_MANIFEST_FILE unset.
Actual result
6 failed, 17 passed:
test_eval_need_check_missing_attribute_logs_and_returns_falsetest_check_all_warns_once_per_failing_parenttest_check_one[none_fulfill]test_check_one[no_parents]test_check_one[unknown_parent]test_info_only_keeps_message
The failures are location assertions. For example:
Expected: docname.rst:42
Actual: <MagicMock id='...'>/docname.rst:42
For comparison, the normal Bazel invocation passes all 109 tests:
bazel test //src/extensions/score_metamodel:unit_tests
Cause
fake_check_logger() passes a MagicMock as the logger's path prefix, while its assertions expect docname.rst:42.
CheckLogger._location() omits that prefix in a Bazel runfiles environment. Outside Bazel, it includes the prefix, exposing the mock in the location string and causing the assertions to fail.
Expected result
- The graph-check unit tests pass through both direct pytest and Bazel invocations.
- Logger fixtures and location assertions work without externally supplied Bazel runfiles variables, while retaining meaningful verification of diagnostic locations.
- Vorherrschende Sprache
- Python
- Sterne
- 11
- Forks
- 37
- Ø Merge
- 1 T. 1 Std.
- Gemergte PRs (30 T.)
- 61
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus eclipse-score/docs-as-code
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
eclipse-score/docs-as-code#920 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
drop buildifier_prebuilt dependencyEvtl. vergeben @Logeshwari-Sithan hat das vor 3 Tagen übernommen. Offengood first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
eclipse-score/docs-as-code#917 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
Add project name to headline ...Evtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offendocumentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
eclipse-score/docs-as-code#613 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
update py_venvOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
eclipse-score/docs-as-code#606 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug waiting_for_author
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
eclipse-score/docs-as-code#288 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in eclipse-score/docs-as-code
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
-
Validate finite output clamping limits in StepPredictor.prepare_clamping_params to prevent silent NaN/Inf propagationEvtl. vergeben @muskan-creates352 hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
mllam/neural-lam#848 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
infra
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
fab-geocommuns/RNB-coeur#1166 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
deepspeedai/DeepSpeed#8951 ·
Maintainer antworten meist innerhalb von 2 Tagen