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
15}:
16
17python3Packages.buildPythonApplication {
18 pname = "nixos-test-driver";
19 version = "1.1";
20 src = ./.;
21 format = "pyproject";
22
23 propagatedBuildInputs = [
24 coreutils
25 netpbm
26 python3Packages.colorama
27 python3Packages.ptpython
28 qemu_pkg
29 socat
30 vde2
31 ]
32 ++ (lib.optionals enableOCR [ imagemagick_light tesseract4 ])
33 ++ extraPythonPackages python3Packages;
34
35 passthru.tests = {
36 inherit (nixosTests.nixos-test-driver) driver-timeout;
37 };
38
39 doCheck = true;
40 nativeCheckInputs = with python3Packages; [ mypy ruff black ];
41 checkPhase = ''
42 echo -e "\x1b[32m## run mypy\x1b[0m"
43 mypy test_driver extract-docstrings.py
44 echo -e "\x1b[32m## run ruff\x1b[0m"
45 ruff .
46 echo -e "\x1b[32m## run black\x1b[0m"
47 black --check --diff .
48 '';
49}