From 489d7351da074d4b26fe43095e439524c44ede79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Robert=20Sch=C3=BCtz?=
 <robert.schuetz@stud.uni-heidelberg.de>
Date: Wed, 27 Mar 2019 15:07:06 +0100
Subject: [PATCH] python.pkgs.cherrypy: spilt expression in two

---
 .../python-modules/cherrypy/17.nix            | 36 +++++++++++++++
 .../python-modules/cherrypy/default.nix       | 44 +++++++------------
 pkgs/top-level/python-packages.nix            |  5 ++-
 3 files changed, 56 insertions(+), 29 deletions(-)
 create mode 100644 pkgs/development/python-modules/cherrypy/17.nix

diff --git a/pkgs/development/python-modules/cherrypy/17.nix b/pkgs/development/python-modules/cherrypy/17.nix
new file mode 100644
index 000000000000..daeb6ca45267
--- /dev/null
+++ b/pkgs/development/python-modules/cherrypy/17.nix
@@ -0,0 +1,36 @@
+{ lib, 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.1";
+
+  src = fetchPypi {
+    pname = "CherryPy";
+    inherit version;
+    sha256 = "1kl17anzz535jgkn9qcy0c2m0zlafph0iv7ph3bb9mfrs2bgvagv";
+  };
+
+  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
+  '';
+
+  meta = with lib; {
+    homepage = https://www.cherrypy.org;
+    description = "A pythonic, object-oriented HTTP framework";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/cherrypy/default.nix b/pkgs/development/python-modules/cherrypy/default.nix
index 4a860c5510ca..de70ae699273 100644
--- a/pkgs/development/python-modules/cherrypy/default.nix
+++ b/pkgs/development/python-modules/cherrypy/default.nix
@@ -1,54 +1,42 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k
-, cheroot, contextlib2, portend, routes, six
-, setuptools_scm, zc_lockfile, more-itertools
-, backports_unittest-mock, objgraph, pathpy, pytest, pytestcov
-, backports_functools_lru_cache, requests_toolbelt, pytest-services
+, setuptools_scm
+, cheroot, portend, more-itertools, zc_lockfile, routes
+, objgraph, pytest, pytestcov, pathpy, requests_toolbelt, pytest-services
 }:
 
-let
-  srcInfo = if isPy3k then {
-    version = "18.1.0";
-    sha256 = "4dd2f59b5af93bd9ca85f1ed0bb8295cd0f5a8ee2b84d476374d4e070aa5c615";
-  } else {
-    version = "17.4.1";
-    sha256 = "1kl17anzz535jgkn9qcy0c2m0zlafph0iv7ph3bb9mfrs2bgvagv";
-  };
-in buildPythonPackage rec {
-  pname = "CherryPy";
-  inherit (srcInfo) version;
+buildPythonPackage rec {
+  pname = "cherrypy";
+  version = "18.1.0";
+
+  disabled = !isPy3k;
 
   src = fetchPypi {
-    inherit pname;
-    inherit (srcInfo) version sha256;
+    pname = "CherryPy";
+    inherit version;
+    sha256 = "4dd2f59b5af93bd9ca85f1ed0bb8295cd0f5a8ee2b84d476374d4e070aa5c615";
   };
 
-  propagatedBuildInputs = if isPy3k then [
+  propagatedBuildInputs = [
     # required
     cheroot portend more-itertools zc_lockfile
     # optional
     routes
-  ] else [
-    cheroot contextlib2 portend routes six zc_lockfile
   ];
 
-  buildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools_scm ];
 
-  checkInputs = if isPy3k then [
+  checkInputs = [
     objgraph pytest pytestcov pathpy requests_toolbelt pytest-services
-  ] else [
-    backports_unittest-mock objgraph pathpy pytest pytestcov backports_functools_lru_cache requests_toolbelt
   ];
 
   checkPhase = ''
-    # 3 out of 5 SignalHandlingTests need network access
     # test_2_File_Concurrency also fails upstream: https://github.com/cherrypy/cherrypy/issues/1306
     # ...and skipping it makes 2 other tests fail
-    LANG=en_US.UTF-8 pytest -k "not SignalHandlingTests and not test_4_Autoreload \
-                            and not test_2_File_Concurrency and not test_3_Redirect and not test_4_File_deletion"
+    pytest -k "not test_2_File_Concurrency and not test_3_Redirect and not test_4_File_deletion"
   '';
 
   meta = with lib; {
-    homepage = "http://www.cherrypy.org";
+    homepage = https://www.cherrypy.org;
     description = "A pythonic, object-oriented HTTP framework";
     license = licenses.bsd3;
   };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index d3463a6a5ed1..b61be45efd3d 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1363,7 +1363,10 @@ in {
 
   cheetah = callPackage ../development/python-modules/cheetah { };
 
-  cherrypy = callPackage ../development/python-modules/cherrypy {};
+  cherrypy = if isPy3k then
+    callPackage ../development/python-modules/cherrypy { }
+  else
+    callPackage ../development/python-modules/cherrypy/17.nix { };
 
   cfgv = callPackage ../development/python-modules/cfgv { };