djblets.features.testing¶
Helpers for unit tests working with features.
- FeatureStates¶
A type mapping feature instances or IDs to enabled flags.
New in version 3.3.
- override_feature_checks(feature_states: Dict[Union[Feature, str], bool]) Generator[None, None, None] [source]¶
Override multiple features for a test.
Unit tests can make use of this context manager to ensure that one or more features have particular enabled/disabled states before executing any code dependent on those features.
Only the provided features will be modified, with all other feature logic falling back to the default behavior for the configured feature checker.
- Version Change:
1.0.13:
feature_states
now accepts aFeature
instance as a key.
- Parameters:
feature_states (
dict
) – A dictionary of feature IDs or instances to booleans (representing whether the feature is enabled).
Example
from myproject.features import my_feature_3 feature_states = { 'my-feature-1': True, 'my-feature-2': False, my_feature_3: True, } with override_feature_checks(feature_states): # Your test code here.
- override_feature_check(feature_id: Union[Feature, str], enabled: bool) Generator[None, None, None] [source]¶
Override a feature for a test.
Unit tests can make use of this context manager to ensure that a specific feature has a particular enabled/disabled state before executing any code dependent on that feature.
Only the provided feature will be modified, with all other feature logic falling back to the default behavior for the configured feature checker.
- Parameters:
feature_id (
str
ordjblets.features.feature.Feature
) – The ID or instance of the feature to override.enabled (
bool
) – The enabled state for the feature.
Example
from myproject.features import my_feature_2 with override_feature_check('my-feature', enabled=False): # Your test code here. with override_feature_check(my_feature_2, enabled=True): # Your test code here.