1 # This file contains type hints that can be prepended to Nix test scripts so they can be type
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
):
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]]
32 test_script
: Callable
[[], None]
33 machines
: List
[Machine
]
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