Coverage for app/backend/src/tests/fixtures/feature_flags.py: 90%
21 statements
« prev ^ index » next coverage.py v7.17.2, created at 2026-11-09 14:50 +0000
« prev ^ index » next coverage.py v7.17.2, created at 2026-11-09 14:50 +0000
1from typing import Any
4class Flags:
5 """Test handle for setting feature flag values in file-override mode; see the `flags` fixture."""
7 def __init__(self, values: dict[str, Any]) -> None:
8 self._values = values
10 def set_boolean(self, key: str, value: bool) -> None:
11 self._values[key] = value
13 def set_string(self, key: str, value: str) -> None:
14 self._values[key] = value
16 def set_integer(self, key: str, value: int) -> None:
17 self._values[key] = value
19 def set_float(self, key: str, value: float) -> None:
20 self._values[key] = value
22 def set_object(self, key: str, value: Any) -> None:
23 self._values[key] = value
26class FeatureFlags:
27 """Test handle for controlling feature flag values; see the `feature_flags` fixture."""
29 def __init__(self, features: dict[str, Any]) -> None:
30 self._features = features
32 def set(self, key: str, value: Any) -> None:
33 """Make `key` resolve to `value` for every user (logged in or anonymous)."""
34 self._features[key] = {"defaultValue": value}
36 def set_definition(self, key: str, definition: dict[str, Any]) -> None:
37 """Set a raw GrowthBook feature definition, for exercising rollouts/experiments."""
38 self._features[key] = definition