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
This commit is contained in:
Romanos Skiadas 2020-06-26 01:54:00 +01:00 committed by Jon
parent 22d0213376
commit 5e891fd073

View file

@ -1,12 +1,13 @@
{ stdenv { stdenv
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, mock
, pytest
, pytest-mock
, pytz , pytz
, requests , requests
, coverage , requests-kerberos
, mock , toml
, nose
, unittest2
}: }:
buildPythonPackage rec { buildPythonPackage rec {
@ -19,14 +20,21 @@ buildPythonPackage rec {
}; };
propagatedBuildInputs = [ pytz requests ]; 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; { meta = with stdenv.lib; {
description = "A Python API for accessing resources on a Jenkins continuous-integration server"; description = "A Python API for accessing resources on a Jenkins continuous-integration server";
homepage = "https://github.com/salimfadhley/jenkinsapi"; homepage = "https://github.com/salimfadhley/jenkinsapi";
maintainers = with maintainers; [ drets ]; maintainers = with maintainers; [ drets ];
license = licenses.mit; license = licenses.mit;
broken = true;
}; };
} }