feat(config): add explicit default-dark serving gate fields
This commit is contained in:
parent
45835987b9
commit
0c087f698e
4 changed files with 48 additions and 0 deletions
|
|
@ -335,6 +335,15 @@ class RuntimeConfig:
|
||||||
# default); the engine never raises its own ceiling.
|
# default); the engine never raises its own ceiling.
|
||||||
estimation_enabled: bool = False
|
estimation_enabled: bool = False
|
||||||
|
|
||||||
|
# ASK serving gate enable flag. When True, ASK serving is allowed.
|
||||||
|
# Default False (dark).
|
||||||
|
ask_serving_enabled: bool = False
|
||||||
|
|
||||||
|
# VERIFIED serving gate enable flag. When True, VERIFIED serving is allowed.
|
||||||
|
# Default False (dark).
|
||||||
|
verified_serving_enabled: bool = False
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_IDENTITY_PACK: str = "default_general_v1"
|
DEFAULT_IDENTITY_PACK: str = "default_general_v1"
|
||||||
DEFAULT_ETHICS_PACK: str = "default_general_ethics_v1"
|
DEFAULT_ETHICS_PACK: str = "default_general_ethics_v1"
|
||||||
|
|
|
||||||
|
|
@ -26,10 +26,14 @@ class _OptInConfig:
|
||||||
|
|
||||||
|
|
||||||
def test_default_runtime_config_keeps_ask_serving_dark() -> None:
|
def test_default_runtime_config_keeps_ask_serving_dark() -> None:
|
||||||
|
assert hasattr(RuntimeConfig(), "ask_serving_enabled")
|
||||||
|
assert RuntimeConfig().ask_serving_enabled is False
|
||||||
|
assert DEFAULT_CONFIG.ask_serving_enabled is False
|
||||||
assert ask_serving_enabled(DEFAULT_CONFIG) is False
|
assert ask_serving_enabled(DEFAULT_CONFIG) is False
|
||||||
assert ask_serving_enabled(RuntimeConfig()) is False
|
assert ask_serving_enabled(RuntimeConfig()) is False
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def test_missing_flag_is_dark_for_legacy_config_shape() -> None:
|
def test_missing_flag_is_dark_for_legacy_config_shape() -> None:
|
||||||
assert ask_serving_enabled(_LegacyConfig()) is False
|
assert ask_serving_enabled(_LegacyConfig()) is False
|
||||||
|
|
||||||
|
|
|
||||||
31
tests/test_cross_serving_gates.py
Normal file
31
tests/test_cross_serving_gates.py
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
"""Cross-gate configuration field tests.
|
||||||
|
|
||||||
|
Verifies that RuntimeConfig has both ask_serving_enabled and
|
||||||
|
verified_serving_enabled, that both are default false, and that setting
|
||||||
|
one does not implicitly enable the other.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import dataclasses
|
||||||
|
|
||||||
|
from core.config import RuntimeConfig
|
||||||
|
|
||||||
|
|
||||||
|
def test_cross_serving_gates_independence() -> None:
|
||||||
|
# 1. Verify both are present on a fresh config and default to False
|
||||||
|
config = RuntimeConfig()
|
||||||
|
assert hasattr(config, "ask_serving_enabled")
|
||||||
|
assert hasattr(config, "verified_serving_enabled")
|
||||||
|
assert config.ask_serving_enabled is False
|
||||||
|
assert config.verified_serving_enabled is False
|
||||||
|
|
||||||
|
# 2. Verify setting ask_serving_enabled to True does not enable verified_serving_enabled
|
||||||
|
config_ask = dataclasses.replace(config, ask_serving_enabled=True)
|
||||||
|
assert config_ask.ask_serving_enabled is True
|
||||||
|
assert config_ask.verified_serving_enabled is False
|
||||||
|
|
||||||
|
# 3. Verify setting verified_serving_enabled to True does not enable ask_serving_enabled
|
||||||
|
config_verified = dataclasses.replace(config, verified_serving_enabled=True)
|
||||||
|
assert config_verified.ask_serving_enabled is False
|
||||||
|
assert config_verified.verified_serving_enabled is True
|
||||||
|
|
@ -30,10 +30,14 @@ class _OptInConfig:
|
||||||
|
|
||||||
|
|
||||||
def test_default_runtime_config_keeps_verified_serving_dark() -> None:
|
def test_default_runtime_config_keeps_verified_serving_dark() -> None:
|
||||||
|
assert hasattr(RuntimeConfig(), "verified_serving_enabled")
|
||||||
|
assert RuntimeConfig().verified_serving_enabled is False
|
||||||
|
assert DEFAULT_CONFIG.verified_serving_enabled is False
|
||||||
assert verified_serving_enabled(DEFAULT_CONFIG) is False
|
assert verified_serving_enabled(DEFAULT_CONFIG) is False
|
||||||
assert verified_serving_enabled(RuntimeConfig()) is False
|
assert verified_serving_enabled(RuntimeConfig()) is False
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def test_missing_flag_is_dark_for_legacy_config_shape() -> None:
|
def test_missing_flag_is_dark_for_legacy_config_shape() -> None:
|
||||||
assert verified_serving_enabled(_LegacyConfig()) is False
|
assert verified_serving_enabled(_LegacyConfig()) is False
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue