Coverage for src / ocarina / custom_invariants / testing / workers.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 workers amount."""
3from typing import TYPE_CHECKING
5from ocarina.dsl.invariants.assertions import is_not_zero, is_positive
6from ocarina.dsl.invariants.validate import FrameworkInvariantValidator
8if TYPE_CHECKING:
9 from ocarina.dsl.invariants.internals.validation_chain import (
10 ValidationAssertBlock,
11 ValidationStartBlock,
12 )
15def _workers_amount_chain(
16 chain: ValidationStartBlock[int],
17 value: int,
18) -> ValidationAssertBlock[int]:
19 msg = f"Value Error: Number of workers must be at least 1 (got: {value})."
20 return chain.assert_that(is_positive, msg=msg).assert_that(is_not_zero, msg=msg)
23def validate_workers_amount(
24 *, workers_amount: int, name: str
25) -> ValidationAssertBlock[int]:
26 """Validate that workers amount is at least 1."""
27 return FrameworkInvariantValidator.create(
28 workers_amount, name, _workers_amount_chain
29 )