nixpkgs/nixos/lib/test-driver/default.nix

92 lines
1.4 KiB
Nix

{
lib,
stdenv,
buildPythonApplication,
colorama,
coreutils,
imagemagick_light,
ipython,
junit-xml,
ptpython,
pydantic,
python,
ovmfvartool,
remote-pdb,
ruff,
ty,
netpbm,
vhost-device-vsock,
nixosTests,
setuptools,
socat,
systemd,
tesseract4,
util-linux,
vde2,
enableNspawn ? false,
enableOCR ? false,
extraPythonPackages ? (_: [ ]),
}:
buildPythonApplication {
pname = "nixos-test-driver";
version = "1.1";
pyproject = true;
src = ./src;
build-system = [
setuptools
];
dependencies = [
colorama
ipython
junit-xml
ptpython
pydantic
ovmfvartool
remote-pdb
]
++ extraPythonPackages python.pkgs;
propagatedBuildInputs = [
coreutils
netpbm
socat
util-linux
vde2
]
++ lib.optionals stdenv.isLinux [
vhost-device-vsock
]
++ lib.optionals enableNspawn [
systemd
]
++ lib.optionals enableOCR [
imagemagick_light
tesseract4
];
# containers test requires extra nix features that are not available in ofborg.
passthru.tests = removeAttrs nixosTests.nixos-test-driver [ "containers" ];
doCheck = true;
nativeCheckInputs = [
ruff
ty
];
checkPhase = ''
echo -e "\x1b[32m## run ty\x1b[0m"
ty check --error-on-warning test_driver extract-docstrings.py
echo -e "\x1b[32m## run ruff check\x1b[0m"
ruff check .
echo -e "\x1b[32m## run ruff format\x1b[0m"
ruff format --check --diff .
'';
}