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

1"""Validation of test cycle name: valid cross-platform filename.""" 

2 

3from typing import TYPE_CHECKING 

4 

5from ocarina.dsl.invariants.assertions import ( 

6 is_valid_filename, 

7) 

8from ocarina.dsl.invariants.validate import FrameworkInvariantValidator 

9 

10if TYPE_CHECKING: 

11 from ocarina.dsl.invariants.internals.validation_chain import ( 

12 ValidationAssertBlock, 

13 ValidationStartBlock, 

14 ) 

15 

16 

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) 

23 

24 

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)