vuls: init at 0.27.0
[NixPkgs.git] / nixos / lib / test-driver / default.nix
blob26652db6016e619b6304d8e8ffbdffa9ef18ca3c
1 { lib
2 , python3Packages
3 , enableOCR ? false
4 , qemu_pkg ? qemu_test
5 , coreutils
6 , imagemagick_light
7 , netpbm
8 , qemu_test
9 , socat
10 , ruff
11 , tesseract4
12 , vde2
13 , extraPythonPackages ? (_ : [])
14 , nixosTests
16 let
17   fs = lib.fileset;
19 python3Packages.buildPythonApplication {
20   pname = "nixos-test-driver";
21   version = "1.1";
22   src = fs.toSource {
23     root = ./.;
24     fileset = fs.unions [
25       ./pyproject.toml
26       ./test_driver
27       ./extract-docstrings.py
28     ];
29   };
30   pyproject = true;
32   propagatedBuildInputs = [
33     coreutils
34     netpbm
35     python3Packages.colorama
36     python3Packages.junit-xml
37     python3Packages.ptpython
38     qemu_pkg
39     socat
40     vde2
41   ]
42     ++ (lib.optionals enableOCR [ imagemagick_light tesseract4 ])
43     ++ extraPythonPackages python3Packages;
45   nativeBuildInputs = [
46     python3Packages.setuptools
47   ];
49   passthru.tests = {
50     inherit (nixosTests.nixos-test-driver) driver-timeout;
51   };
53   doCheck = true;
54   nativeCheckInputs = with python3Packages; [ mypy ruff black ];
55   checkPhase = ''
56     echo -e "\x1b[32m## run mypy\x1b[0m"
57     mypy test_driver extract-docstrings.py
58     echo -e "\x1b[32m## run ruff\x1b[0m"
59     ruff check .
60     echo -e "\x1b[32m## run black\x1b[0m"
61     black --check --diff .
62   '';