infrasynth-backend-kit/tests/test_features/test_registry.py
2026-08-28 14:38:47 -05:00

39 lines
1.5 KiB
Python

import pytest
from infrasynth.features.registry import FeatureDefinition, FeatureRegistry
class TestFeatureRegistry:
@pytest.fixture(autouse=True)
def clean_registry(self, clean_feature_registry):
yield
def test_register_adds_feature(self):
FeatureRegistry.register("test.flag", name="Test", default=True)
all_flags = FeatureRegistry.get_all()
assert "test.flag" in all_flags
assert isinstance(all_flags["test.flag"], FeatureDefinition)
def test_register_sets_default(self):
FeatureRegistry.register("flag.a", default=True)
FeatureRegistry.register("flag.b", default=False)
assert FeatureRegistry.get_all()["flag.a"].default is True
assert FeatureRegistry.get_all()["flag.b"].default is False
def test_register_overwrites_existing(self):
FeatureRegistry.register("dup", default=True)
FeatureRegistry.register("dup", default=False)
assert FeatureRegistry.get_all()["dup"].default is False
def test_get_all_returns_copy(self):
FeatureRegistry.register("f1")
result = FeatureRegistry.get_all()
result["new_key"] = FeatureDefinition(slug="new_key")
assert "new_key" not in FeatureRegistry.get_all()
def test_register_with_category(self):
FeatureRegistry.register("cat.flag", category="billing")
assert FeatureRegistry.get_all()["cat.flag"].category == "billing"
def test_empty_registry(self):
assert FeatureRegistry.get_all() == {}