about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/cherrypy
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/cherrypy')
-rw-r--r--nixpkgs/pkgs/development/python-modules/cherrypy/17.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/cherrypy/default.nix60
2 files changed, 96 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/cherrypy/17.nix b/nixpkgs/pkgs/development/python-modules/cherrypy/17.nix
new file mode 100644
index 000000000000..d9b9166e0f0d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cherrypy/17.nix
@@ -0,0 +1,36 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, setuptools_scm
+, cheroot, contextlib2, portend, routes, six, zc_lockfile
+, backports_unittest-mock, objgraph, pathpy, pytest, pytestcov, backports_functools_lru_cache, requests_toolbelt
+}:
+
+buildPythonPackage rec {
+  pname = "cherrypy";
+  version = "17.4.2";
+
+  src = fetchPypi {
+    pname = "CherryPy";
+    inherit version;
+    sha256 = "ef1619ad161f526745d4f0e4e517753d9d985814f1280e330661333d2ba05cdf";
+  };
+
+  propagatedBuildInputs = [
+    cheroot contextlib2 portend routes six zc_lockfile
+  ];
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  checkInputs = [
+    backports_unittest-mock objgraph pathpy pytest pytestcov backports_functools_lru_cache requests_toolbelt
+  ];
+
+  checkPhase = ''
+    pytest ${stdenv.lib.optionalString stdenv.isDarwin "--ignore=cherrypy/test/test_wsgi_unix_socket.py"}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.cherrypy.org;
+    description = "A pythonic, object-oriented HTTP framework";
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix b/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
new file mode 100644
index 000000000000..6941e1117bdc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+, setuptools_scm
+, cheroot, portend, more-itertools, zc_lockfile, routes
+, objgraph, pytest, pytestcov, pathpy, requests_toolbelt, pytest-services
+, fetchpatch
+}:
+
+buildPythonPackage rec {
+  pname = "cherrypy";
+  version = "18.1.2";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    pname = "CherryPy";
+    inherit version;
+    sha256 = "1w3hpsg7q8shdmscmbqk00w90lcw3brary7wl1a56k5h7nx33pj8";
+  };
+
+  # Remove patches once 96b34df and 14c12d2
+  # become part of a release - they're currently only present in master.
+  # ref: https://github.com/cherrypy/cherrypy/pull/1791
+  patches = [
+    (fetchpatch {
+      name = "pytest5-1.patch";
+      url = "https://github.com/cherrypy/cherrypy/commit/96b34dfea7853b0189bc0a3878b6ddff0d4e505c.patch";
+      sha256 = "0zy53mahffgkpd844118b42lsk5lkjmig70d60x1i46w6gnr61mi";
+    })
+    (fetchpatch {
+      name = "pytest5-2.patch";
+      url = "https://github.com/cherrypy/cherrypy/commit/14c12d2420a4b3765bb241250bd186e93b2f25eb.patch";
+      sha256 = "0ihcz7b5myn923rq5665b98pz52hnf6fcys2y2inf23r3i07scyz";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    # required
+    cheroot portend more-itertools zc_lockfile
+    # optional
+    routes
+  ];
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  checkInputs = [
+    objgraph pytest pytestcov pathpy requests_toolbelt pytest-services
+  ];
+
+  # Disable doctest plugin because times out
+  checkPhase = ''
+    substituteInPlace pytest.ini --replace "--doctest-modules" ""
+    pytest --deselect=cherrypy/test/test_static.py::StaticTest::test_null_bytes ${stdenv.lib.optionalString stdenv.isDarwin "--deselect=cherrypy/test/test_bus.py::BusMethodTests::test_block"}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.cherrypy.org;
+    description = "A pythonic, object-oriented HTTP framework";
+    license = licenses.bsd3;
+  };
+}