Graph-check unit tests fail under direct pytest because logger fixtures assume Bazel runfiles
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
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
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.
- Langage dominant
- Python
- Étoiles
- 11
- Forks
- 37
- Merge moyen
- 1 j 1 h
- PR mergées (30 j)
- 61
Préparer son environnement
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
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de eclipse-score/docs-as-code
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
eclipse-score/docs-as-code#920 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
drop buildifier_prebuilt dependencyPeut-être pris @Logeshwari-Sithan l’a pris il y a 3 jours. Ouvertegood first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
eclipse-score/docs-as-code#917 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Add project name to headline ...Peut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouvertedocumentation
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
eclipse-score/docs-as-code#613 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
update py_venvOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
eclipse-score/docs-as-code#606 ·
Les mainteneurs répondent en général sous 1 jour
-
bug waiting_for_author
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
eclipse-score/docs-as-code#288 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de eclipse-score/docs-as-code
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
pytest-dev/pytest-html#1085 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 90/100
pollen-robotics/reachy_mini#1527 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 66/100
Les mainteneurs répondent en général sous 2 jours
-
Variadic arguments that aren't objects are passed as objects (stringWithFormat_ with %d / %f)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
A seed and its negative give the same run, so realizations of a negative seed repeat each otherOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
Les mainteneurs répondent en général sous 1 jour