From 5e891fd07339fa6e388e75e07637e8de1088cca1 Mon Sep 17 00:00:00 2001 From: Romanos Skiadas Date: Fri, 26 Jun 2020 01:54:00 +0100 Subject: [PATCH] python3Packages.jenkinsapi: fix build nix-env -f default.nix -iA python38Packages.jenkinsapi now works. Here is a list of all the things done: - fixed the dependency list which was lacking some packages - changed checkPhase. This called python setup.py test by default, which is very much not what jenkinsapi does upstream. This resulted in simple_post_logger.py being imported, which called serve_forever(), manifesting as a hang - tox decided to install pbr every time and fails and also tried to run tests across multiple python versions, so I just made checkPhase call pylint/pycodestyle/py.test directly. - disabled systests which try to run jenkins - disabled misc broken tests. There are some calls in them that should have been mocked but the mocks don't take effect for some reason, resulting in failed requests to localhost. - removed needless inputs. nose and unittest2 are not needed, not even in python2 - disabled tests on darwin, as requests-kerberos is apparently broken --- .../python-modules/jenkinsapi/default.nix | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/jenkinsapi/default.nix b/pkgs/development/python-modules/jenkinsapi/default.nix index 7fe7f2baa4a..40bf7752a90 100644 --- a/pkgs/development/python-modules/jenkinsapi/default.nix +++ b/pkgs/development/python-modules/jenkinsapi/default.nix @@ -1,12 +1,13 @@ { stdenv , buildPythonPackage , fetchPypi +, mock +, pytest +, pytest-mock , pytz , requests -, coverage -, mock -, nose -, unittest2 +, requests-kerberos +, toml }: buildPythonPackage rec { @@ -19,14 +20,21 @@ buildPythonPackage rec { }; propagatedBuildInputs = [ pytz requests ]; - buildInputs = [ coverage mock nose unittest2 ]; + checkInputs = [ mock pytest pytest-mock requests-kerberos toml ]; + # TODO requests-kerberos is broken on darwin, weeding out the broken tests without + # access to macOS is not an adventure I am ready to embark on - @rski + doCheck = !stdenv.isDarwin; + # don't run tests that try to spin up jenkins, and a few more that are mysteriously broken + checkPhase = '' + py.test jenkinsapi_tests \ + -k "not systests and not test_plugins and not test_view" + ''; meta = with stdenv.lib; { description = "A Python API for accessing resources on a Jenkins continuous-integration server"; homepage = "https://github.com/salimfadhley/jenkinsapi"; maintainers = with maintainers; [ drets ]; license = licenses.mit; - broken = true; }; }