def test_generate_stub_no_class_name(self): schema = Schema() schema.x = VirtualField(lambda x: None) schema.y = StringField() with pytest.raises(TypeError): generate_stub(schema)
def test_is_feature_disabled_false(self): schema = Schema() schema.x = Field() schema.y = FeatureFlagField() schema.z = FeatureFlagField() config = schema() config._data.update({'y': True, 'z': False}) assert not schema._is_feature_enabled(config)
def test_default_keys(self): schema = Schema() schema.a.b = Field(default=0) schema.x = Field(default=1) schema.y = Field(default=2) schema.z = Field(default=3) config = schema(y=2, z=4) assert config._default_value_keys == set(['a', 'x'])
def test_validate_schema_invalid(self): schema = Schema() schema.x = IntField(default=1) schema.y = IntField(default=2) cfg = MockConfig() proxy = ListProxy(cfg, schema) with pytest.raises(ValueError): proxy._validate(100)
def test_make_type(self): schema = Schema() schema.x = Field(default=2) schema.y = Field() CustomConfig = make_type(schema, 'CustomConfig') cfg = CustomConfig(y=10) assert isinstance(cfg, Config) assert cfg.x == 2 assert cfg.y == 10
def test_generate_stub_schema(self): schema = Schema() schema.x = VirtualField(lambda x: None) schema.y = StringField() stub = generate_stub(schema, 'Thing').split('\n') assert 'class Thing(cincoconfig.core.ConfigType):' in stub assert ' x: typing.Any' in stub assert ' y: str' in stub assert ' def __init__(self, y: str): ...' in stub
def test_validate_schema_dict(self): schema = Schema() schema.x = IntField(default=1) schema.y = IntField(default=2) cfg = MockConfig() proxy = ListProxy(cfg, ListField(schema)) check = proxy._validate({'x': 10}) assert isinstance(check, Config) assert check.x == 10 assert check.y == 2 assert check._parent is cfg assert check._schema is schema
def test_validate_schema_config(self): schema = Schema() schema.x = IntField(default=1) schema.y = IntField(default=2) cfg = MockConfig() proxy = ListProxy(cfg, ListField(schema)) val = schema() val.x = 10 check = proxy._validate(val) assert isinstance(check, Config) assert check is val assert check._parent is cfg assert check._schema is schema
def test_to_basic_schema(self): schema = Schema() schema.x = IntField(default=1) schema.y = IntField(default=2) field = ListField(schema) assert field.to_basic(MockConfig(), [schema()]) == [{'x': 1, 'y': 2}]
def test_get_fields_type(self): schema = Schema() schema.x = Field() schema.y = IntField() schema.sub1.y = Field() assert get_fields(schema, IntField) == [('y', schema.y)]
def test_feature_flag_fields(self): schema = Schema() schema.x = Field() schema.y = FeatureFlagField() schema.z = FeatureFlagField() assert list(schema._feature_flag_fields) == [schema.y, schema.z]