mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-08-25 17:55:21 +00:00
python3Packages.attrs: separate test run into a separate tests attribute.
This resolves a circular dependency issue between pytest and attrs, by instead building a separate output that _just_ contains the tests from the original package, which is then consumed by a separate tests derivation. The downside of this approach is that these tests will not be run on Hydra. They're not being run on Hydra at the moment, either, since doCheck is false.
This commit is contained in:
committed by
Jonathan Ringer
parent
fe2d2498c9
commit
3d568360e7
@@ -1,5 +1,8 @@
|
||||
{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, hypothesis, zope_interface
|
||||
, pympler, coverage, six, clang }:
|
||||
{ lib
|
||||
, callPackage
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "attrs";
|
||||
@@ -10,18 +13,24 @@ buildPythonPackage rec {
|
||||
sha256 = "ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb";
|
||||
};
|
||||
|
||||
# macOS needs clang for testing
|
||||
checkInputs = [
|
||||
pytest hypothesis zope_interface pympler coverage six
|
||||
] ++ lib.optionals (stdenv.isDarwin) [ clang ];
|
||||
outputs = [ "out" "testout" ];
|
||||
|
||||
checkPhase = ''
|
||||
py.test
|
||||
postInstall = ''
|
||||
# Install tests as the tests output.
|
||||
mkdir $testout
|
||||
cp -R tests $testout/tests
|
||||
'';
|
||||
|
||||
# To prevent infinite recursion with pytest
|
||||
pythonImportsCheck = [ "attr" ];
|
||||
|
||||
# pytest depends on attrs, so we can't do this out-of-the-box.
|
||||
# Instead, we do this as a passthru.tests test.
|
||||
doCheck = false;
|
||||
|
||||
passthru.tests = {
|
||||
pytest = callPackage ./tests.nix { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python attributes without boilerplate";
|
||||
homepage = "https://github.com/hynek/attrs";
|
||||
|
||||
21
pkgs/development/python-modules/attrs/tests.nix
Normal file
21
pkgs/development/python-modules/attrs/tests.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ buildPythonPackage
|
||||
, pytestCheckHook
|
||||
, attrs
|
||||
, hypothesis
|
||||
}:
|
||||
|
||||
buildPythonPackage {
|
||||
pname = "attrs-tests";
|
||||
inherit (attrs) version;
|
||||
|
||||
srcs = attrs.testout;
|
||||
|
||||
dontBuild = true;
|
||||
dontInstall = true;
|
||||
|
||||
checkInputs = [
|
||||
attrs
|
||||
hypothesis
|
||||
pytestCheckHook
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user