02.05.01 — Test[Driver]#
Source file:
src/ocarina/dsl/testing/oc_test.py
Signature#
@final
class Test[Driver]:
def __init__(
self,
*,
name: TestName,
test_id: str | None = None,
test_scenario: TestScenario[Driver],
pre_test_scenarios_fragments: Sequence[TestScenarioFragment[Driver]] | None = None,
post_test_scenarios_fragments: Sequence[TestScenarioFragment[Driver]] | None = None,
skipped: bool = False,
) -> None:
if test_id is None:
test_id = name
self.name = name
self.test_id = test_id
self._test_scenario = test_scenario
self._pre_test_scenarios_fragments = pre_test_scenarios_fragments or []
self._post_test_scenarios_fragments = post_test_scenarios_fragments or []
self._skipped = skippedSix parameters:
| Parameter | Type | Role |
|---|---|---|
name | TestName (str) | Human label; appears in the report, and becomes the log file name (hence subject to is_valid_filename). |
test_id | str | None | Stable identifier for --only / --exclude. If absent: takes name. |
test_scenario | TestScenario[Driver] (alias = Callable[[Driver, ILogger], Scenario[Driver]]) | Factory that builds the Scenario at execution time. |
pre_test_scenarios_fragments | Sequence[TestScenarioFragment[Driver]] | None | (driver, logger) -> TestChain functions executed before the main scenario. |
post_test_scenarios_fragments | Sequence[TestScenarioFragment[Driver]] | None | (driver, logger) -> TestChain functions executed after the main scenario. |
skipped | bool | If True, the test is registered but not executed. |
1. @final#
No user inheritance. Want a “special” test? Compose via fragments or a scenario — don’t subclass.