nixpkgs/pkgs/development/tools/devpi-server/default.nix
makefu 14ba13d9ea
devpi-server: add py as runtime dep, add version test
the test is not performed in the postCheck phase because the dependency py was previously
provided as nativeTestInput. Running test in the installPhase ensure no extra
dependencies are used which are not available at runtime

fixes #286156
2024-02-04 05:44:03 +01:00

121 lines
2.3 KiB
Nix

{ lib, fetchFromGitHub, buildPythonApplication
, pythonOlder
, aiohttp
, appdirs
, beautifulsoup4
, defusedxml
, devpi-common
, execnet
, itsdangerous
, nginx
, packaging
, passlib
, platformdirs
, pluggy
, py
, pyramid
, pytestCheckHook
, repoze-lru
, setuptools
, strictyaml
, waitress
, webtest
, testers
, devpi-server
}:
buildPythonApplication rec {
pname = "devpi-server";
version = "6.9.2";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "devpi";
repo = "devpi";
rev = "server-${version}";
hash = "sha256-HnxWLxOK+6B8O/7lpNjuSUQ0Z7NOmV2n01WFyjow6oU=";
};
sourceRoot = "${src.name}/server";
postPatch = ''
substituteInPlace tox.ini \
--replace "--flake8" ""
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
aiohttp
appdirs
defusedxml
devpi-common
execnet
itsdangerous
packaging
passlib
platformdirs
pluggy
pyramid
repoze-lru
setuptools
strictyaml
waitress
py
] ++ passlib.optional-dependencies.argon2;
nativeCheckInputs = [
beautifulsoup4
nginx
py
pytestCheckHook
webtest
];
# root_passwd_hash tries to write to store
# TestMirrorIndexThings tries to write to /var through ngnix
# nginx tests try to write to /var
preCheck = ''
export PATH=$PATH:$out/bin
export HOME=$TMPDIR
'';
pytestFlagsArray = [
"./test_devpi_server"
"--slow"
"-rfsxX"
"--ignore=test_devpi_server/test_nginx_replica.py"
"--ignore=test_devpi_server/test_streaming_nginx.py"
"--ignore=test_devpi_server/test_streaming_replica_nginx.py"
];
disabledTests = [
"root_passwd_hash_option"
"TestMirrorIndexThings"
"test_auth_mirror_url_no_hash"
"test_auth_mirror_url_with_hash"
"test_auth_mirror_url_hidden_in_logs"
];
__darwinAllowLocalNetworking = true;
pythonImportsCheck = [
"devpi_server"
];
passthru.tests.version = testers.testVersion {
package = devpi-server;
};
meta = with lib;{
homepage = "http://doc.devpi.net";
description = "Github-style pypi index server and packaging meta tool";
changelog = "https://github.com/devpi/devpi/blob/${src.rev}/server/CHANGELOG";
license = licenses.mit;
maintainers = with maintainers; [ makefu ];
};
}