nixpkgs/pkgs/development/python-modules/pywbem/default.nix

54 lines
1.7 KiB
Nix

{ stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, libxml2
, m2crypto, ply, pyyaml, six
, httpretty, lxml, mock, pytest, requests
}:
buildPythonPackage rec {
name = "pywbem-${version}";
version = "0.10.0";
src = fetchFromGitHub {
owner = "pywbem";
repo = "pywbem";
rev = "v${version}";
sha256 = "0jcwklip03xcni0dvsk9va8ilqz21g4fxwqd5kzvv91slaadfcym";
};
patches = [
# fix timezone handling so the tests pass again. Can go when 0.11.0 is released
# https://github.com/pywbem/pywbem/issues/755#issuecomment-327508681
(fetchpatch {
url = "https://github.com/pywbem/pywbem/commit/bb7fa19d636d999bf844d80939e155b8f212ef3e.patch";
sha256 = "1c5fsz4zdbgwwni7njdixbwhb5i9bw11mabqpzivrh7z9wna6ab9";
})
];
propagatedBuildInputs = [ m2crypto ply pyyaml six ];
checkInputs = [ httpretty lxml mock pytest requests ];
# 1 test fails because it doesn't like running in our sandbox. Deleting the
# whole file is admittedly a little heavy-handed but at least the vast
# majority of tests are run.
checkPhase = ''
rm testsuite/testclient/networkerror.yaml
substituteInPlace makefile \
--replace "PYTHONPATH=." "" \
--replace '--cov $(package_name) --cov-config coveragerc' ""
for f in testsuite/test_cim_xml.py testsuite/validate.py ; do
substituteInPlace $f --replace "'xmllint" "'${stdenv.lib.getBin libxml2}/bin/xmllint"
done
make PATH=$PATH:${stdenv.lib.getBin libxml2}/bin test
'';
meta = with stdenv.lib; {
description = "Support for the WBEM standard for systems management.";
homepage = http://pywbem.github.io/pywbem/;
license = licenses.gpl2;
maintainers = with maintainers; [ peterhoeg ];
};
}