Improve configtypes tests
This also gets configtypes.py back to 100% coverage
This commit is contained in:
parent
ab7cbfdea0
commit
27b524300b
@ -107,6 +107,10 @@ class ValidValues:
|
|||||||
return utils.get_repr(self, values=self.values,
|
return utils.get_repr(self, values=self.values,
|
||||||
descriptions=self.descriptions)
|
descriptions=self.descriptions)
|
||||||
|
|
||||||
|
def __eq__(self, other):
|
||||||
|
return (self.values == other.values and
|
||||||
|
self.descriptions == other.descriptions)
|
||||||
|
|
||||||
|
|
||||||
class BaseType:
|
class BaseType:
|
||||||
|
|
||||||
|
@ -163,6 +163,21 @@ class TestValidValues:
|
|||||||
with pytest.raises(ValueError):
|
with pytest.raises(ValueError):
|
||||||
klass()
|
klass()
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('args1, args2, is_equal', [
|
||||||
|
(('foo', 'bar'), ('foo', 'bar'), True),
|
||||||
|
(('foo', 'bar'), ('foo', 'baz'), False),
|
||||||
|
((('foo', 'foo desc'), ('bar', 'bar desc')),
|
||||||
|
(('foo', 'foo desc'), ('bar', 'bar desc')),
|
||||||
|
True),
|
||||||
|
((('foo', 'foo desc'), ('bar', 'bar desc')),
|
||||||
|
(('foo', 'foo desc'), ('bar', 'bar desc2')),
|
||||||
|
False),
|
||||||
|
])
|
||||||
|
def test_equal(self, klass, args1, args2, is_equal):
|
||||||
|
obj1 = klass(*args1)
|
||||||
|
obj2 = klass(*args2)
|
||||||
|
assert (obj1 == obj2) == is_equal
|
||||||
|
|
||||||
|
|
||||||
class TestBaseType:
|
class TestBaseType:
|
||||||
|
|
||||||
@ -224,6 +239,13 @@ class TestBaseType:
|
|||||||
basetype.valid_values = configtypes.ValidValues(*valid_values)
|
basetype.valid_values = configtypes.ValidValues(*valid_values)
|
||||||
assert basetype.complete() == completions
|
assert basetype.complete() == completions
|
||||||
|
|
||||||
|
def test_get_name(self, basetype):
|
||||||
|
assert basetype.get_name() == 'BaseType'
|
||||||
|
|
||||||
|
def test_get_valid_values(self, basetype):
|
||||||
|
basetype.valid_values = configtypes.ValidValues('foo')
|
||||||
|
assert basetype.get_valid_values() is basetype.valid_values
|
||||||
|
|
||||||
|
|
||||||
class MappingSubclass(configtypes.MappingType):
|
class MappingSubclass(configtypes.MappingType):
|
||||||
|
|
||||||
@ -409,6 +431,13 @@ class TestList:
|
|||||||
def test_transform(self, klass, val, expected):
|
def test_transform(self, klass, val, expected):
|
||||||
assert klass().transform(val) == expected
|
assert klass().transform(val) == expected
|
||||||
|
|
||||||
|
def test_get_name(self, klass):
|
||||||
|
assert klass().get_name() == 'ListSubclass of BaseType'
|
||||||
|
|
||||||
|
def test_get_valid_values(self, klass):
|
||||||
|
expected = configtypes.ValidValues('foo', 'bar', 'baz')
|
||||||
|
assert klass().get_valid_values() == expected
|
||||||
|
|
||||||
|
|
||||||
class FlagListSubclass(configtypes.FlagList):
|
class FlagListSubclass(configtypes.FlagList):
|
||||||
|
|
||||||
@ -489,6 +518,10 @@ class TestFlagList:
|
|||||||
def test_complete_no_valid_values(self, klass_valid_none):
|
def test_complete_no_valid_values(self, klass_valid_none):
|
||||||
assert klass_valid_none().complete() is None
|
assert klass_valid_none().complete() is None
|
||||||
|
|
||||||
|
def test_get_name(self, klass):
|
||||||
|
"""Make sure the name has no "of ..." in it."""
|
||||||
|
assert klass().get_name() == 'FlagListSubclass'
|
||||||
|
|
||||||
|
|
||||||
class TestBool:
|
class TestBool:
|
||||||
|
|
||||||
@ -1594,6 +1627,7 @@ class TestHeaderDict:
|
|||||||
'{"hello": "wörld"}', # non-ascii data in value
|
'{"hello": "wörld"}', # non-ascii data in value
|
||||||
'', # empty value with none_ok=False
|
'', # empty value with none_ok=False
|
||||||
'{}', # ditto
|
'{}', # ditto
|
||||||
|
'[invalid', # invalid json
|
||||||
])
|
])
|
||||||
def test_validate_invalid(self, klass, val):
|
def test_validate_invalid(self, klass, val):
|
||||||
with pytest.raises(configexc.ValidationError):
|
with pytest.raises(configexc.ValidationError):
|
||||||
|
Loading…
Reference in New Issue
Block a user