DFSG NEW Queue

DFSG, Licensing & New Packages Team

python-pytest-html 4.2.0+ds-1

Package Information

Descriptionpytest plugin for generating HTML reports

pytest-html is a pytest plugin that generates an HTML report of the test session, with results, durations, captured output, logs and session metadata. The report can be a single self-contained file, and it can be filtered and sorted in the browser.

Tests and plugins can attach extra content to the report, such as text, URLs, images or videos, and the report layout can be customised through hooks and additional CSS.

MaintainerDebian Python Team <team+python@tracker.debian.org>
Changed ByNico Della Torre <nicoz91@ubuntu.com>
Sponsortchet@debian.org
Distributionunstable
Architectureall
VCSgit: https://salsa.debian.org/python-team/packages/python-pytest-html.git (browse)
Closes#1152631
Trackerhttps://tracker.debian.org/pkg/python-pytest-html
Uploaded2 hours ago

New Package Report

.changes◂
Version4.2.0+ds-1
Changed-ByNico Della Torre <nicoz91@ubuntu.com>
Architecturesource all
Distributionunstable
DateFri, 30 Oct 2026 21:34:38 +0100
Sourcepython-pytest-html
Changelog◂
python-pytest-html (4.2.0+ds-1) unstable; urgency=medium
 .
   * Initial release. (Closes: #1152631)
.dsc◂
Package-Listpython3-pytest-html deb python optional arch=all
Sectionpython
Priorityoptional
Componentmain
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: pytest-html
Upstream-Contact: Dave Hunt <dhunt@mozilla.com>
Source: https://github.com/pytest-dev/pytest-html
Files-Excluded:
 src/pytest_html/resources/app.js
 src/pytest_html/resources/style.css
Comment: The generated JavaScript bundle and stylesheet are rebuilt from
 src/pytest_html/scripts/*.js and src/layout/css/style.scss at build time.

Files: *
Copyright: 2015-2026, Dave Hunt <dhunt@mozilla.com>
           2015-2026, Jim Brännlund <jimbrannlund@fastmail.com>
           2015-2026, pytest-html contributors
License: MPL-2.0

Files: debian/*
Copyright: 2026, Nico Della Torre <nicoz91@ubuntu.com>
License: MPL-2.0

License: MPL-2.0
 This Source Code Form is subject to the terms of the Mozilla Public
 License, v. 2.0. If a copy of the MPL was not distributed with this
 file, You can obtain one at http://mozilla.org/MPL/2.0/.
 .
 On Debian systems, the full text of the Mozilla Public License version 2.0
 can be found in the file '/usr/share/common-licenses/MPL-2.0'.

DFSG Assistant LLM REVIEW 0 blocker, 0 important, 0 minor

This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.

Reviewed 1 hour ago.

Report◂

DFSG NEW review for python-pytest-html version 4.2.0+ds-1

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: Yes
  • Packaging is of good quality: Yes
  • Issues: 0 blocker, 0 important, 0 minor
  • debian/watch: version 5
  • debian/copyright: machine-readable
  • Scan before the review: nothing found

Licensing

debian/copyright is DEP-5 1.0 and accurate. The whole tree is MPL-2.0: the root LICENSE carries the MPL short notice, every module under src/pytest_html (plus testing/legacy_test_pytest_html.py) carries the same header, and pyproject.toml/PKG-INFO declare License-Expression: MPL-2.0. MPL-2.0 is DFSG-free and its full text is in /usr/share/common-licenses, so the reference in the stand-alone License paragraph is sufficient; there is no other licence or holder in the tree. The +ds repack removes only the two built artefacts (resources/app.js, resources/style.css), which Files-Excluded names exactly and which debian/rules regenerates from sources that are present. The one holder the prescan raised, Dave Hunt in docs/conf.py, is already covered by Files: *.

Packaging

Packaging is in good shape and follows current Python-team practice. debhelper compat 14 with dh-sequence-python3 and pybuild/pyproject; the generated JavaScript bundle and stylesheet are built in execute_before_dh_auto_build with esbuild and dart-sass (both in the archive) and removed again by debian/clean, so the tree stays pristine and nothing non-source is shipped. The tests that run need python3-pytest, which is in Build-Depends, so debhelper's pybuild buildsystem selects the pytest runner automatically; debian/pybuild.testfiles adds the testing directory (upstream's name, not copied by default) and PYBUILD_TEST_ARGS narrows the run to testing/test_unit.py. The single quilt patch has correct DEP-3 headers and is forwarded. Standards-Version 4.7.4 matches current Policy, Vcs-* fields are present, the changelog closes an ITP, and the autopkgtest is the pybuild stub, which inherits PYBUILD_TEST_ARGS because pybuild-autopkgtest includes debian/rules.

Issues

None.

Verified ◂
  • docs/conf.py:20 copyright = "2020, Dave Hunt" # noqa: A001 - the text the prescan matched is the lint suppression comment; the holder is Dave Hunt, who is named in the Files: * Copyright field, so nothing is missing, and the year (2020) is within the stated 2015-2026 range.
  • LICENSE contains only the MPL-2.0 short notice (no holder line); that matches Files: * / License: MPL-2.0 and the standalone paragraph pointing at /usr/share/common-licenses/MPL-2.0, which exists (checked against the directory listing).
  • Every src/pytest_html/.py except init.py and the generated __version.py carries the MPL-2.0 header; src/pytest_html/scripts/.js, src/layout/css/style.scss, src/pytest_html/resources/index.jinja2, docs/.rst, docs/conf.py, testing/ and the root config files carry no separate notice, so they fall under the project LICENSE via Files: * - no third-party or differently licensed code and no embedded copies of Debian libraries.
  • The JavaScript carries no external dependency: every require() in src/pytest_html/scripts resolves to another file in that directory (index/main/filter/sort/datamanager/storage/dom/mediaviewer), so the esbuild bundle contains no npm code. src/layout/css/style.scss is self-contained (only a local @mixin/@include/@extend).
  • Files-Excluded matches the repack: src/pytest_html/resources/ holds only index.jinja2 both in the tree and inside python-pytest-html_4.2.0+ds.orig.tar.xz, and app.js/style.css are generated by debian/rules from src/pytest_html/scripts/*.js and src/layout/css/style.scss, so no built file ships without its source.
  • Generated-but-present files, none a DFSG problem: PKG-INFO (hatchling, from pyproject.toml), src/pytest_html/__version.py (setuptools-scm, generator is [tool.hatch.build.hooks.vcs] in pyproject.toml), docs/requirements.txt (pip-compile, input docs/requirements.in is present), package-lock.json (npm lockfile - metadata, and no code from it is bundled or shipped).
  • debian/* is covered by its own later stanza (last match wins over Files: *), and the copy of basereport.py in .pc/ is quilt state and was left out as instructed.
  • Build inputs checked with apt-cache: esbuild 0.28.2 and dart-sass 1.106.1 (which provides /usr/bin/sass) both exist in the archive; python3-hatch-vcs, pybuild-plugin-pyproject, python3-pytest-metadata, python3-assertpy and python3-ansi2html exist, and python3-pytest-metadata 3.1.1 satisfies the upstream pytest-metadata>=2 requirement.
  • The test runner and version are not guesses: /usr/share/perl5/Debian/Debhelper/Buildsystem/pybuild.pm adds --test-pytest when python3-pytest appears in Build-Depends (its regex matches python3-pytest <!nocheck> and python3-all), and exports SETUPTOOLS_SCM_PRETEND_VERSION because python3-hatch-vcs is a build dependency, so the hatch-vcs build works without a VCS.
  • Tests are deliberately narrow but defensible: testing/test_integration.py imports selenium unconditionally and testing/legacy_test_pytest_html.py imports pkg_resources, so only testing/test_unit.py (which needs nothing beyond python3-pytest and python3-assertpy) is run at build and in autopkgtest; pybuild copies testing into the build dir because debian/pybuild.testfiles says so.
  • debian/patches/fix-rerun-count-with-rerunfailures-16.7.patch has Description, Author, Bug, Forwarded (PR 1086) and Last-Update, is listed in series, and the patched code in src/pytest_html/basereport.py is coherent: the teardown that follows a rerun outcome is dropped and the nodeid forgotten on the next non-rerun report, so the final attempt still finishes the test.
  • uscan found the packaged version as the newest upstream release (upstream 4.2.0, packaged 4.2.0+ds).
  • Every pointer of debian/copyright to /usr/share/common-licenses names a file that is there (MPL-2.0).
Not confirmed ◂
  • I could not run the build or the tests, so I did not see the built wheel: that the build-time-generated app.js and style.css end up inside it depends on hatchling's file selection, which I could not read (python3-hatchling is not installed on this system). The build order (rules hook before dh_auto_build) and the fact that the package's own unit tests render reports through resources/index.jinja2 make it very likely, and no false-positive-prone claim is made from it.
Proposed changes ◂

None.

Uploader's response to the LLM review

The uploader was emailed about the review 1 hour ago.

Back to Dashboard | View all reviews for this package