nixos/preload: init
[NixPkgs.git] / nixos / lib / test-script-prepend.py
blob15e59ce01047d3d10a305ac1548516d840bed870
1 # This file contains type hints that can be prepended to Nix test scripts so they can be type
2 # checked.
4 from test_driver.driver import Driver
5 from test_driver.vlan import VLan
6 from test_driver.machine import Machine
7 from test_driver.logger import Logger
8 from typing import Callable, Iterator, ContextManager, Optional, List, Dict, Any, Union
9 from typing_extensions import Protocol
10 from pathlib import Path
13 class RetryProtocol(Protocol):
14 def __call__(self, fn: Callable, timeout: int = 900) -> None:
15 raise Exception("This is just type information for the Nix test driver")
18 class PollingConditionProtocol(Protocol):
19 def __call__(
20 self,
21 fun_: Optional[Callable] = None,
23 seconds_interval: float = 2.0,
24 description: Optional[str] = None,
25 ) -> Union[Callable[[Callable], ContextManager], ContextManager]:
26 raise Exception("This is just type information for the Nix test driver")
29 start_all: Callable[[], None]
30 subtest: Callable[[str], ContextManager[None]]
31 retry: RetryProtocol
32 test_script: Callable[[], None]
33 machines: List[Machine]
34 vlans: List[VLan]
35 driver: Driver
36 log: Logger
37 create_machine: Callable[[Dict[str, Any]], Machine]
38 run_tests: Callable[[], None]
39 join_all: Callable[[], None]
40 serial_stdout_off: Callable[[], None]
41 serial_stdout_on: Callable[[], None]
42 polling_condition: PollingConditionProtocol