python3Packages.isort: build from source, fix tests

This commit is contained in:
Jonathan Ringer 2020-11-29 13:14:18 -08:00 committed by Frederik Rietdijk
parent 09ab575e37
commit cdb402ce3d
2 changed files with 46 additions and 16 deletions

@ -1,30 +1,30 @@
{ lib, buildPythonPackage, fetchPypi, setuptools, isPy27, futures
, backports_functools_lru_cache, mock, pytest
{ lib, buildPythonPackage, fetchFromGitHub, setuptools, futures
, backports_functools_lru_cache, mock, pytestCheckHook, poetry, hypothesis, pylama
, colorama
}:
let
skipTests = [ "test_requirements_finder" "test_pipfile_finder" ] ++ lib.optional isPy27 "test_standard_library_deprecates_user_issue_778";
testOpts = lib.concatMapStringsSep " " (t: "--deselect test_isort.py::${t}") skipTests;
in buildPythonPackage rec {
pname = "isort";
version = "5.6.4"; # Note 4.x is the last version that supports Python2
version = "5.6.4";
format = "pyproject";
src = fetchPypi {
inherit pname version;
sha256 = "dcaeec1b5f0eca77faea2a35ab790b4f3680ff75590bfcb7145986905aab2f58";
src = fetchFromGitHub {
owner = "PyCQA";
repo = "isort";
rev = version;
sha256 = "1m7jpqssnbsn1ydrw1dn7nrcrggqcvj9v6mk5ampxmvk94xd2r2q";
};
nativeBuildInputs = [ poetry ];
propagatedBuildInputs = [
setuptools
] ++ lib.optionals isPy27 [ futures backports_functools_lru_cache ];
];
checkInputs = [ mock pytest ];
checkPhase = ''
# isort excludes paths that contain /build/, so test fixtures don't work
# with TMPDIR=/build/
PATH=$out/bin:$PATH TMPDIR=/tmp/ pytest ${testOpts}
checkInputs = [ colorama hypothesis pylama pytestCheckHook ];
postCheck = ''
# Confirm that the produced executable script is wrapped correctly and runs
# OK, by launching it in a subshell without PYTHONPATH
(
@ -34,6 +34,34 @@ in buildPythonPackage rec {
)
'';
preCheck = ''
HOME=$TMPDIR
export PATH=$PATH:$out/bin
'';
pytestFlagsArray = [
"--ignore=tests/integration/" # pulls in 10 other packages
"--ignore=tests/unit/profiles/test_black.py" # causes infinite recursion to include black
];
disabledTests = [
"test_run" # doesn't like paths in /build
"test_pyi_formatting_issue_942"
"test_requirements_finder"
"test_pipfile_finder"
"test_main" # relies on git
"test_command_line" # not thread safe
"test_encoding_not_in_comment" # not python 3.9 compatible
"test_encoding_not_in_first_two_lines" # not python 3.9 compatible
"test_requirements_dir" # requires network
# plugin not available
"test_isort_literals_issue_1358"
"test_isort_supports_formatting_plugins_issue_1353"
"test_value_assignment_list"
# profiles not available
"test_isort_supports_shared_profiles_issue_970"
];
meta = with lib; {
description = "A Python utility / library to sort Python imports";
homepage = "https://github.com/PyCQA/isort";

@ -3056,7 +3056,9 @@ in {
isodate = callPackage ../development/python-modules/isodate { };
isort = callPackage ../development/python-modules/isort { };
isort = callPackage ../development/python-modules/isort {
inherit (pkgs) poetry;
};
isoweek = callPackage ../development/python-modules/isoweek { };