1{ lib 2, buildNpmPackage 3, buildPythonPackage 4, fetchPypi 5, pythonOlder 6, hatch-vcs 7, hatchling 8, jinja2 9, pytest 10, pytest-metadata 11}: 12let 13 pname = "pytest-html"; 14 version = "4.0.2"; 15 16 src = fetchPypi { 17 pname = "pytest_html"; 18 inherit version; 19 hash = "sha256-iGgrno5ROSRyVGpwohObJ9a8GDSkr9PkHaM8nZ+R5KQ="; 20 }; 21 22 web-assets = buildNpmPackage { 23 pname = "${pname}-web-assets"; 24 inherit version src; 25 26 npmDepsHash = "sha256-aRod+SzVSb4bqEJzthfl/mH+DpbIe+j2+dNtrrhO2xU="; 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 format = "pyproject"; 41 42 disabled = pythonOlder "3.6"; 43 44 nativeBuildInputs = [ 45 hatch-vcs 46 hatchling 47 ]; 48 buildInputs = [ pytest web-assets ]; 49 propagatedBuildInputs = [ jinja2 pytest-metadata ]; 50 51 env.HATCH_BUILD_NO_HOOKS = true; 52 53 preBuild = '' 54 install -Dm644 ${web-assets}/lib/{app.js,style.css} -t src/pytest_html/resources 55 ''; 56 57 # tests require network access 58 doCheck = false; 59 60 pythonImportsCheck = [ 61 "pytest_html" 62 ]; 63 64 meta = with lib; { 65 description = "Plugin for generating HTML reports"; 66 homepage = "https://github.com/pytest-dev/pytest-html"; 67 license = licenses.mpl20; 68 maintainers = with maintainers; [ mpoquet ]; 69 }; 70}