summary refs log tree commit diff
path: root/pkgs/development/python-modules/pytest-html/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/pytest-html/default.nix')
-rw-r--r--pkgs/development/python-modules/pytest-html/default.nix68
1 files changed, 57 insertions, 11 deletions
diff --git a/pkgs/development/python-modules/pytest-html/default.nix b/pkgs/development/python-modules/pytest-html/default.nix
index f5b20cb1b50..3375a7a0a0b 100644
--- a/pkgs/development/python-modules/pytest-html/default.nix
+++ b/pkgs/development/python-modules/pytest-html/default.nix
@@ -1,19 +1,65 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
-, pytest, pytest-metadata, setuptools-scm }:
-
-buildPythonPackage rec {
+{ lib
+, buildNpmPackage
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, hatch-vcs
+, hatchling
+, jinja2
+, pytest
+, pytest-metadata
+}:
+let
   pname = "pytest-html";
-  version = "3.2.0";
-  disabled = pythonOlder "3.6";
+  version = "4.0.2";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-xOL0uwv/xDf1GtIXSoo+cd+Bu8L2iUYE5gSvGPvmh8M=";
+    pname = "pytest_html";
+    inherit version;
+    hash = "sha256-iGgrno5ROSRyVGpwohObJ9a8GDSkr9PkHaM8nZ+R5KQ=";
+  };
+
+  web-assets = buildNpmPackage {
+    pname = "${pname}-web-assets";
+    inherit version src;
+
+    npmDepsHash = "sha256-aRod+SzVSb4bqEJzthfl/mH+DpbIe+j2+dNtrrhO2xU=";
+
+    installPhase = ''
+      runHook preInstall
+
+      install -Dm644 src/pytest_html/resources/{app.js,style.css} -t $out/lib
+
+      runHook postInstall
+    '';
   };
+in
+
+buildPythonPackage {
+  inherit pname version src;
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
+
+  nativeBuildInputs = [
+    hatch-vcs
+    hatchling
+  ];
+  buildInputs = [ pytest web-assets ];
+  propagatedBuildInputs = [ jinja2 pytest-metadata ];
+
+  env.HATCH_BUILD_NO_HOOKS = true;
+
+  preBuild = ''
+    install -Dm644 ${web-assets}/lib/{app.js,style.css} -t src/pytest_html/resources
+  '';
+
+  # tests require network access
+  doCheck = false;
 
-  nativeBuildInputs = [ setuptools-scm ];
-  buildInputs = [ pytest ];
-  propagatedBuildInputs = [ pytest-metadata ];
+  pythonImportsCheck = [
+    "pytest_html"
+  ];
 
   meta = with lib; {
     description = "Plugin for generating HTML reports";