Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Graph-check unit tests fail under direct pytest because logger fixtures assume Bazel runfiles

Offen Anfängerfreundlich
#999 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
python
Bereich
testing

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

bug

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_false
  • test_check_all_warns_once_per_failing_parent
  • test_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

In Codespaces öffnen

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

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus eclipse-score/docs-as-code

Alle Issues in eclipse-score/docs-as-code

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.