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

94 lines
1.7 KiB
Nix

{ fetchPypi
, lib
, buildPythonPackage
, python
, isPy3k
, appdirs
, cached-property
, defusedxml
, isodate
, lxml
, pytz
, requests_toolbelt
, six
# test dependencies
, freezegun
, mock
, nose
, pretend
, pytest
, pytestcov
, requests-mock
, tornado
}:
buildPythonPackage rec {
pname = "zeep";
version = "3.0.0";
src = fetchPypi {
inherit pname version;
sha256 = "faab59d57275ce35845f42371cca83b3957982cdca9621228153fb99c770c4fc";
};
propagatedBuildInputs = [
appdirs
cached-property
defusedxml
isodate
lxml
pytz
requests_toolbelt
six
];
# testtools dependency not supported for py3k
doCheck = !isPy3k;
checkInputs = [
tornado
];
buildInputs = if isPy3k then [] else [
freezegun
mock
nose
pretend
pytest
pytestcov
requests-mock
];
patchPhase = ''
# remove overly strict bounds and lint requirements
sed -e "s/freezegun==.*'/freezegun'/" \
-e "s/pytest-cov==.*'/pytest-cov'/" \
-e "s/'isort.*//" \
-e "s/'flake8.*//" \
-i setup.py
# locale.preferredencoding() != 'utf-8'
sed -e "s/xsd', 'r')/xsd', 'r', encoding='utf-8')/" -i tests/*.py
# cache defaults to home directory, which doesn't exist
sed -e "s|SqliteCache()|SqliteCache(path='./zeeptest.db')|" \
-i tests/test_transports.py
# requires xmlsec python module
rm tests/test_wsse_signature.py
'';
checkPhase = ''
runHook preCheck
${python.interpreter} -m pytest tests
runHook postCheck
'';
meta = with lib; {
homepage = http://docs.python-zeep.org;
license = licenses.mit;
description = "A modern/fast Python SOAP client based on lxml / requests";
maintainers = with maintainers; [ rvl ];
};
}