diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index b8660d57507..f77cdaf12e4 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -6630,6 +6630,11 @@ fingerprint = "78C2 E81C 828A 420B 269A EBC1 49FA 39F8 A7F7 35F9"; }]; }; + hulr = { + github = "hulr"; + githubId = 17255815; + name = "hulr"; + }; humancalico = { email = "humancalico@disroot.org"; github = "humancalico"; diff --git a/pkgs/development/python-modules/pytest-testinfra/default.nix b/pkgs/development/python-modules/pytest-testinfra/default.nix new file mode 100644 index 00000000000..c4fbeb466b1 --- /dev/null +++ b/pkgs/development/python-modules/pytest-testinfra/default.nix @@ -0,0 +1,66 @@ +{ lib +, buildPythonPackage +, fetchPypi +, setuptools-scm +, ansible-core +, paramiko +, pytestCheckHook +, pytest-xdist +, pywinrm +, salt +}: + +buildPythonPackage rec { + pname = "pytest-testinfra"; + version = "8.1.0"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-m0CCi1j7esK/8pzBRlk0rfQ08Q3VoQj2BTXe5SZgpj0="; + }; + + nativeBuildInputs = [ + setuptools-scm + ]; + + nativeCheckInputs = [ + ansible-core + paramiko + pytestCheckHook + pytest-xdist + pywinrm + salt + ]; + + # markers don't get added when docker is not available (leads to warnings): + # https://github.com/pytest-dev/pytest-testinfra/blob/8.1.0/test/conftest.py#L228 + preCheck = '' + export HOME=$(mktemp -d) + sed -i '54imarkers = \ + \ttestinfra_hosts(host_selector): mark test to run on selected hosts \ + \tdestructive: mark test as destructive \ + \tskip_wsl: skip test on WSL, no systemd support' setup.cfg + ''; + + # docker is required for all disabled tests + disabledTests = [ + # test/test_backends.py + "test_command" + "test_encoding" + "test_ansible_any_error_fatal" + "test_user_connection" + "test_sudo" + "test_docker_encoding" + ]; + + disabledTestPaths = [ + "test/test_modules.py" + ]; + + meta = with lib; { + description = "Pytest plugin for testing your infrastructure"; + homepage = "https://github.com/pytest-dev/pytest-testinfra"; + license = licenses.asl20; + maintainers = with maintainers; [ hulr ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0e94974c0c9..9a7afb17de9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9748,6 +9748,8 @@ self: super: with self; { pytest-test-utils = callPackage ../development/python-modules/pytest-test-utils { }; + pytest-testinfra = callPackage ../development/python-modules/pytest-testinfra { }; + pytest-testmon = callPackage ../development/python-modules/pytest-testmon { }; pytest-timeout = callPackage ../development/python-modules/pytest-timeout { };