示例#1
0
    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)
示例#2
0
 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)
示例#3
0
 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'])
示例#4
0
    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)
示例#5
0
    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
示例#6
0
    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
示例#7
0
    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
示例#8
0
    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
示例#9
0
 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}]
示例#10
0
 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)]
示例#11
0
 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]