{stdenv, lib, buildPythonPackage, fetchPypi, coverage, bash, which, writeText}: buildPythonPackage rec { name = "${pname}-${version}"; version = "0.7"; pname = "cram"; buildInputs = [ coverage which ]; src = fetchPypi { inherit pname version; sha256 = "0bvz6fwdi55rkrz3f50zsy35gvvwhlppki2yml5bj5ffy9d499vx"; }; postPatch = '' substituteInPlace tests/test.t \ --replace "/bin/bash" "${bash}/bin/bash" ''; # This testing is copied from Makefile. Simply using `make test` doesn't work # because it uses the unpatched `scripts/cram` executable which has a bad # shebang. Also, for some reason, coverage fails on one file so let's just # ignore that one. checkPhase = '' # scripts/cram tests #COVERAGE=${coverage}/bin/coverage $out/bin/cram tests #${coverage}/bin/coverage report --fail-under=100 COVERAGE=coverage $out/bin/cram tests coverage report --fail-under=100 --omit="*/_encoding.py,*/__main__.py" ''; meta = { description = "A simple testing framework for command line applications"; homepage = https://bitheap.org/cram/; license = lib.licenses.gpl2Plus; maintainers = with lib.maintainers; [ jluttine ]; # Tests fail on i686: https://hydra.nixos.org/build/52896671/nixlog/4 broken = stdenv.isi686; }; }