nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildNpmPackage,
4 buildPythonPackage,
5 fetchPypi,
6 hatch-vcs,
7 hatchling,
8 jinja2,
9 pytest,
10 pytest-metadata,
11}:
12let
13 pname = "pytest-html";
14 version = "4.2.0";
15
16 src = fetchPypi {
17 pname = "pytest_html";
18 inherit version;
19 hash = "sha256-tqiMulB1ANhwmVkgHi51fTlB6Fn9F8/U7Yexb8DGeRI=";
20 };
21
22 web-assets = buildNpmPackage {
23 pname = "${pname}-web-assets";
24 inherit version src;
25
26 npmDepsHash = "sha256-WJ0Ff0Y1u4EiIauEDGeOqLwY5Wk9wgjIvOGUmDog8rQ=";
27
28 installPhase = ''
29 runHook preInstall
30
31 install -Dm644 src/pytest_html/resources/{app.js,style.css} -t $out/lib
32
33 runHook postInstall
34 '';
35 };
36in
37
38buildPythonPackage {
39 inherit pname version src;
40 pyproject = true;
41
42 nativeBuildInputs = [
43 hatch-vcs
44 hatchling
45 ];
46 buildInputs = [
47 pytest
48 web-assets
49 ];
50 propagatedBuildInputs = [
51 jinja2
52 pytest-metadata
53 ];
54
55 env.HATCH_BUILD_NO_HOOKS = true;
56
57 preBuild = ''
58 install -Dm644 ${web-assets}/lib/{app.js,style.css} -t src/pytest_html/resources
59 '';
60
61 # tests require network access
62 doCheck = false;
63
64 pythonImportsCheck = [ "pytest_html" ];
65
66 meta = {
67 description = "Plugin for generating HTML reports";
68 homepage = "https://github.com/pytest-dev/pytest-html";
69 license = lib.licenses.mpl20;
70 maintainers = with lib.maintainers; [ mpoquet ];
71 };
72}