Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte Adaptée aux débutants
#999 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

  • #1000 par @AlexanderLanin — fermée sans fusion

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
78/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python
Domaine
testing

Piste de recherche

Commence par exécuter .venv_docs/bin/python -m pytest src/extensions/score_metamodel/tests/test_graph_checks.py -q avec RUNFILES_DIR et RUNFILES_MANIFEST_FILE non définis pour reproduire les six échecs. Lis fake_check_logger() dans src/extensions/score_metamodel/tests/__init__.py et CheckLogger._location() dans src/extensions/score_metamodel/log.py ; la fixture fournit un préfixe de chemin MagicMock que les emplacements non-Bazel exposent. Terminé signifie que les six assertions d'emplacement passent sous pytest direct tandis que bazel test //src/extensions/score_metamodel:unit_tests passe toujours.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.
Langage dominant
Python
Étoiles
11
Forks
37
Merge moyen
1 j 1 h
PR mergées (30 j)
61

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

  • Aucun Dockerfile ni fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de eclipse-score/docs-as-code

Toutes les issues de eclipse-score/docs-as-code

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.