"""Plugin for pytest that adds feature-engine fixture.""" import pytest from owsfeatures import features class TestFeatureEngine: """Feature engine that doesn't use ows-features or flask.g.""" def __init__(self): """Initialize with empty set of features.""" self.features_dict = {} def load(self, *args): """Do nothing, but pretend to load.""" # Do nothing, since you're testing return True def force_flag(self, flag, value=True): """Force a feature to be enabled or disabled. Args: flag (str): feature flag to set value (boolean): enabled or not """ group = 'enabled' if value else 'control' self.features_dict[flag] = group def get(self): """Get features dict.""" return self.features_dict @pytest.yield_fixture def feature_engine(): """Return in-memory feature storage.""" old_engine = features.feature_engine features.feature_engine = TestFeatureEngine() yield features.feature_engine features.feature_engine = old_engine