HTML extras for 'call' and 'teardown' phases get merged
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 68/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- python
- Domaine
- testing-qa
Piste de recherche
Reproduce the regression with the provided conftest.py and bug_test.py files, using the pytest-html report output as the starting point. Compare how extras are collected for the call and teardown phases, then verify that each report displays only its own phase's HTML extra and that the regression is covered by a test.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The extras added during the call and teardown phases get merged and are displayed in both call and teardown HTML reports
Use this conftest.py file:
import pytest
@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(item, call):
outcome = yield
pytest_html = item.config.pluginmanager.getplugin("html")
report = outcome.get_result()
extras = getattr(report, "extras", [])
if (
report.when in ("setup", "teardown") and
report.outcome in ('failed', 'skipped')
):
extras.append(pytest_html.extras.html(f'<p>We are in {report.when} phase</p>'))
if report.when == "call":
extras.append(pytest_html.extras.html(f'<p>We are in {report.when} phase</p>'))
report.extras = extras
Use this bug_test.py file:
import pytest
@pytest.fixture
def teardown():
yield
assert False
def test_extras(teardown):
pass
Run the test
Actual result:
The extras for call and teardown are merged and are displayed in both call and teardown reports
Expected result:
- The
callreport only displays the extras added during thecallphase (<p>We are in call phase</p>) - The
teardownreport only displays the extras added during theteardownphase (<p>We are in teardown phase</p>)
This is a regression. We didn't have this bug in pytest-html==4.1.0
- Langage dominant
- Python
- Étoiles
- 779
- Forks
- 261
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
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 pytest-dev/pytest-html
-
test_rerun integration tests fail with pytest-rerunfailures 16.7Peut-être pris @nicozdeb l’a pris il y a 3 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
pytest-dev/pytest-html#1085 · 1 commentaire ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 42/100
pytest-dev/pytest-html#1039 ·
-
Feature: pluggable HTML themes via Jinja2 template inheritancePeut-être pris @RonnyPfannschmidt l’a pris il y a 162 jours. Ouverte
pytest-dev/pytest-html#1029 · 1 réaction · 1 personne assignée ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
pytest-dev/pytest-html#1027 ·
-
pytest-html does not escape HTML in testId (v4.2.0)Peut-être pris @golikovichev l’a pris il y a 146 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
pytest-dev/pytest-html#1024 ·
Toutes les issues de pytest-dev/pytest-html
Issues similaires
-
cost:cheap practicality:seen-in-the-wild severity:medium
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
fairagro/m4.2_advanced_middleware_api#620 ·
Les mainteneurs répondent en général sous 1 jour
-
area:security effort:S priority:P2 provider:local-libvirt status:ready type:docs
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
randomparity/kdive#3495 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
microsoft/markitdown#2820 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 2 jours