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,
|
||||
descriptions=self.descriptions)
|
||||
|
||||
def __eq__(self, other):
|
||||
return (self.values == other.values and
|
||||
self.descriptions == other.descriptions)
|
||||
|
||||
|
||||
class BaseType:
|
||||
|
||||
|
@ -163,6 +163,21 @@ class TestValidValues:
|
||||
with pytest.raises(ValueError):
|
||||
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:
|
||||
|
||||
@ -224,6 +239,13 @@ class TestBaseType:
|
||||
basetype.valid_values = configtypes.ValidValues(*valid_values)
|
||||
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):
|
||||
|
||||
@ -409,6 +431,13 @@ class TestList:
|
||||
def test_transform(self, klass, 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):
|
||||
|
||||
@ -489,6 +518,10 @@ class TestFlagList:
|
||||
def test_complete_no_valid_values(self, klass_valid_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:
|
||||
|
||||
@ -1594,6 +1627,7 @@ class TestHeaderDict:
|
||||
'{"hello": "wörld"}', # non-ascii data in value
|
||||
'', # empty value with none_ok=False
|
||||
'{}', # ditto
|
||||
'[invalid', # invalid json
|
||||
])
|
||||
def test_validate_invalid(self, klass, val):
|
||||
with pytest.raises(configexc.ValidationError):
|
||||
|
Loading…
Reference in New Issue
Block a user