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