Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / cheroot / default.nix
blob602afd0f755f76cfca619a89e8a974e9d38a9112
1 { lib
2 , stdenv
3 , buildPythonPackage
4 , fetchPypi
5 , jaraco-functools
6 , jaraco-text
7 , more-itertools
8 , portend
9 , pypytools
10 , pytest-mock
11 , pytestCheckHook
12 , pythonOlder
13 , requests
14 , requests-toolbelt
15 , requests-unixsocket
16 , setuptools-scm
17 , six
20 buildPythonPackage rec {
21   pname = "cheroot";
22   version = "10.0.0";
23   format = "setuptools";
25   disabled = pythonOlder "3.7";
27   src = fetchPypi {
28     inherit pname version;
29     hash = "sha256-WcShh3/vmWmzw8CAyqrzd+J4CRlDeFP8DTKp30CzEfA=";
30   };
32   # remove setuptools-scm-git-archive dependency
33   # https://github.com/cherrypy/cheroot/commit/f0c51af263e20f332c6f675aa90ec6705ae4f5d1
34   # there is a difference between the github source and the pypi tarball source,
35   # and it is not easy to apply patches.
36   postPatch = ''
37     substituteInPlace pyproject.toml \
38       --replace '"setuptools_scm_git_archive>=1.1",' ""
39     substituteInPlace setup.cfg \
40       --replace "setuptools_scm_git_archive>=1.0" ""
41   '';
43   nativeBuildInputs = [
44     setuptools-scm
45   ];
47   propagatedBuildInputs = [
48     jaraco-functools
49     more-itertools
50     six
51   ];
53   nativeCheckInputs = [
54     jaraco-text
55     portend
56     pypytools
57     pytest-mock
58     pytestCheckHook
59     requests
60     requests-toolbelt
61     requests-unixsocket
62   ];
64   # Disable doctest plugin because times out
65   # Disable xdist (-n arg) because it's incompatible with testmon
66   # Deselect test_bind_addr_unix on darwin because times out
67   # Deselect test_http_over_https_error on darwin because builtin cert fails
68   # Disable warnings-as-errors because of deprecation warnings from socks on python 3.7
69   # Disable pytest-testmon because it doesn't work
70   # adds many other pytest utilities which aren't necessary like linting
71   preCheck = ''
72     rm pytest.ini
73   '';
75   disabledTests = [
76     "tls" # touches network
77     "peercreds_unix_sock" # test urls no longer allowed
78   ] ++ lib.optionals stdenv.isDarwin [
79     "http_over_https_error"
80     "bind_addr_unix"
81     "test_ssl_env"
82   ];
84   disabledTestPaths = [
85     # avoid attempting to use 3 packages not available on nixpkgs
86     # (jaraco.apt, jaraco.context, yg.lockfile)
87     "cheroot/test/test_wsgi.py"
88     # requires pyopenssl
89     "cheroot/test/test_ssl.py"
90   ];
92   pythonImportsCheck = [
93     "cheroot"
94   ];
96   # Some of the tests use localhost networking.
97   __darwinAllowLocalNetworking = true;
99   meta = with lib; {
100     description = "High-performance, pure-Python HTTP";
101     mainProgram = "cheroot";
102     homepage = "https://github.com/cherrypy/cheroot";
103     license = licenses.mit;
104     maintainers = with maintainers; [ ];
105   };