Coverage for src / ocarina / custom_invariants / testing / oc_test_cycles_names.py: 62.50%
8 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-06-04 16:22 +0200
« prev ^ index » next coverage.py v7.13.5, created at 2026-06-04 16:22 +0200
1"""Validation of test cycle name: valid cross-platform filename."""
3from typing import TYPE_CHECKING
5from ocarina.dsl.invariants.assertions import (
6 is_valid_filename,
7)
8from ocarina.dsl.invariants.validate import FrameworkInvariantValidator
10if TYPE_CHECKING:
11 from ocarina.dsl.invariants.internals.validation_chain import (
12 ValidationAssertBlock,
13 ValidationStartBlock,
14 )
17def _test_cycle_name_chain(
18 chain: ValidationStartBlock[str],
19 _: str,
20) -> ValidationAssertBlock[str]:
21 msg = "Test cycle name must be valid cross-platform filename."
22 return chain.assert_that(is_valid_filename, msg=msg)
25def validate_test_cycle_name(
26 *, cycle_name: str, name: str
27) -> ValidationAssertBlock[str]:
28 """Validate that test cycle name is valid cross-platform filename."""
29 return FrameworkInvariantValidator.create(cycle_name, name, _test_cycle_name_chain)