diff --git a/pkgs/development/python-modules/kubernetes/default.nix b/pkgs/development/python-modules/kubernetes/default.nix index e90f72b0fd25..da3c36f6ce04 100644 --- a/pkgs/development/python-modules/kubernetes/default.nix +++ b/pkgs/development/python-modules/kubernetes/default.nix @@ -1,34 +1,58 @@ -{ lib, buildPythonPackage, fetchPypi, pythonAtLeast, - ipaddress, websocket-client, urllib3, pyyaml, requests_oauthlib, python-dateutil, google-auth, adal, - isort, pytest, coverage, mock, sphinx, autopep8, pep8, codecov, recommonmark, nose }: +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder + +# propgatedBuildInputs +, adal +, certifi +, google-auth +, python-dateutil +, pyyaml +, requests +, requests_oauthlib +, urllib3 +, websocket-client + +# tests +, pytestCheckHook +, mock +}: buildPythonPackage rec { pname = "kubernetes"; version = "18.20.0"; + format = "setuptools"; + disabled = pythonOlder "3.6"; - prePatch = '' - sed -e 's/sphinx>=1.2.1,!=1.3b1,<1.4 # BSD/sphinx/' -i test-requirements.txt - - # This is used to randomize tests, which is not reproducible. Drop it. - sed -e '/randomize/d' -i test-requirements.txt - '' - # This is a python2 and python3.2 only requiremet since it is a backport of a python-3.3 api. - + (if (pythonAtLeast "3.3") then '' - sed -e '/ipaddress/d' -i requirements.txt - '' else ""); - - doCheck = pythonAtLeast "3"; - checkPhase = '' - py.test --ignore=kubernetes/dynamic/test_client.py - ''; - - src = fetchPypi { - inherit pname version; - sha256 = "0c72d00e7883375bd39ae99758425f5e6cb86388417cf7cc84305c211b2192cf"; + src = fetchFromGitHub { + owner = "kubernetes-client"; + repo = "python"; + rev = "v${version}"; + sha256 = "1sawp62j7h0yksmg9jlv4ik9b9i1a1w9syywc9mv8x89wibf5ql1"; + fetchSubmodules = true; }; - checkInputs = [ isort coverage pytest mock sphinx autopep8 pep8 codecov recommonmark nose ]; - propagatedBuildInputs = [ ipaddress websocket-client urllib3 pyyaml requests_oauthlib python-dateutil google-auth adal ]; + propagatedBuildInputs = [ + adal + certifi + google-auth + python-dateutil + pyyaml + requests + requests_oauthlib + urllib3 + websocket-client + ]; + + pythonImportsCheck = [ + "kubernetes" + ]; + + checkInputs = [ + mock + pytestCheckHook + ]; meta = with lib; { description = "Kubernetes python client"; diff --git a/pkgs/development/python-modules/openshift/default.nix b/pkgs/development/python-modules/openshift/default.nix index cf604ea38181..78e0c53c9112 100644 --- a/pkgs/development/python-modules/openshift/default.nix +++ b/pkgs/development/python-modules/openshift/default.nix @@ -1,23 +1,33 @@ -{ - lib - , buildPythonPackage - , fetchPypi - , jinja2 - , kubernetes - , ruamel-yaml - , six - , python-string-utils +{ lib +, buildPythonPackage +, fetchFromGitHub +, jinja2 +, kubernetes +, ruamel-yaml +, six +, python-string-utils +, pytest-bdd +, pytestCheckHook }: buildPythonPackage rec { pname = "openshift"; version = "0.12.1"; - src = fetchPypi { - inherit pname version; - sha256 = "a38957684b17ad0e140a87226249bf26de7267db0c83a6d512b48be258052e1a"; + src = fetchFromGitHub { + owner = "openshift"; + repo = "openshift-restclient-python"; + rev = "v${version}"; + sha256 = "1di55xg3nl4dwrrfw314p4mfm6593kdi7ia517v1sm6x5p4hjl78"; }; + postPatch = '' + substituteInPlace requirements.txt \ + --replace "kubernetes ~= 12.0" "kubernetes" + + sed -i '/--cov/d' setup.cfg + ''; + propagatedBuildInputs = [ jinja2 kubernetes @@ -26,10 +36,18 @@ buildPythonPackage rec { six ]; - # tries to connect to the network - doCheck = false; pythonImportsCheck = ["openshift"]; + checkInputs = [ + pytest-bdd + pytestCheckHook + ]; + + disabledTestPaths = [ + # requires docker + "test/functional" + ]; + meta = with lib; { description = "Python client for the OpenShift API"; homepage = "https://github.com/openshift/openshift-restclient-python";