"""Unit tests for features.py.""" import pytest from features.models import feature_variant def test_create(): """Test the creation of a feature variant.""" variant = feature_variant.FeatureVariant('catchy') assert variant.name == 'catchy' assert variant.active is False def test_create_fails_no_variant_name(): """Test the creation of feature variant throws exception.""" with pytest.raises(Exception) as excinfo: feature_variant.FeatureVariant('', (0, 10)) assert 'Name is mandatory' in str(excinfo.value) def test_is_active_default(): """Check if a feature variant is active defaults to false.""" variant = feature_variant.FeatureVariant('catchy') assert variant.is_active() is False def test_is_active_overridden(): """Test if variant is_active uses constructor parameter.""" variant = feature_variant.FeatureVariant('catchy', active=True) assert variant.is_active() is True def test_to_dict(): """Test to_dict has all fields and values.""" variant = feature_variant.FeatureVariant('catchy', active=True) result = variant.to_dict() assert result == {'name': 'catchy', 'active': True}