at 23.11-pre 1.4 kB view raw
1# This file contains type hints that can be prepended to Nix test scripts so they can be type 2# checked. 3 4from test_driver.driver import Driver 5from test_driver.vlan import VLan 6from test_driver.machine import Machine 7from test_driver.logger import Logger 8from typing import Callable, Iterator, ContextManager, Optional, List, Dict, Any, Union 9from typing_extensions import Protocol 10from pathlib import Path 11 12 13class 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") 16 17 18class PollingConditionProtocol(Protocol): 19 def __call__( 20 self, 21 fun_: Optional[Callable] = None, 22 *, 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") 27 28 29start_all: Callable[[], None] 30subtest: Callable[[str], ContextManager[None]] 31retry: RetryProtocol 32test_script: Callable[[], None] 33machines: List[Machine] 34vlans: List[VLan] 35driver: Driver 36log: Logger 37create_machine: Callable[[Dict[str, Any]], Machine] 38run_tests: Callable[[], None] 39join_all: Callable[[], None] 40serial_stdout_off: Callable[[], None] 41serial_stdout_on: Callable[[], None] 42polling_condition: PollingConditionProtocol