config: Improve handling of Deprecated config values
This commit is contained in:
parent
26ec956a08
commit
da63942b48
@ -167,6 +167,8 @@ def _format(config, comments, schemas, display, disable):
|
|||||||
continue
|
continue
|
||||||
output.append(b'[%s]' % bytes(schema.name))
|
output.append(b'[%s]' % bytes(schema.name))
|
||||||
for key, value in serialized.items():
|
for key, value in serialized.items():
|
||||||
|
if isinstance(value, types.DeprecatedValue):
|
||||||
|
continue
|
||||||
comment = bytes(comments.get(schema.name, {}).get(key, ''))
|
comment = bytes(comments.get(schema.name, {}).get(key, ''))
|
||||||
output.append(b'%s =' % bytes(key))
|
output.append(b'%s =' % bytes(key))
|
||||||
if value is not None:
|
if value is not None:
|
||||||
|
|||||||
@ -71,11 +71,11 @@ class ConfigSchema(collections.OrderedDict):
|
|||||||
errors[key] = str(e)
|
errors[key] = str(e)
|
||||||
|
|
||||||
for key in self.keys():
|
for key in self.keys():
|
||||||
if key not in result and key not in errors:
|
if isinstance(self[key], types.Deprecated):
|
||||||
|
result.pop(key, None)
|
||||||
|
elif key not in result and key not in errors:
|
||||||
result[key] = None
|
result[key] = None
|
||||||
errors[key] = 'config key not found.'
|
errors[key] = 'config key not found.'
|
||||||
if isinstance(result[key], types.DeprecatedValue):
|
|
||||||
del result[key]
|
|
||||||
|
|
||||||
return result, errors
|
return result, errors
|
||||||
|
|
||||||
|
|||||||
@ -77,11 +77,10 @@ class ConfigSchemaTest(unittest.TestCase):
|
|||||||
self.assertIsNone(result['bar'])
|
self.assertIsNone(result['bar'])
|
||||||
self.assertIsNone(result['baz'])
|
self.assertIsNone(result['baz'])
|
||||||
|
|
||||||
def test_deserialize_none_value(self):
|
def test_deserialize_deprecated_value(self):
|
||||||
self.schema['foo'].deserialize.return_value = types.DeprecatedValue()
|
self.schema['foo'] = types.Deprecated()
|
||||||
|
|
||||||
result, errors = self.schema.deserialize(self.values)
|
result, errors = self.schema.deserialize(self.values)
|
||||||
print result, errors
|
|
||||||
self.assertItemsEqual(['bar', 'baz'], result.keys())
|
self.assertItemsEqual(['bar', 'baz'], result.keys())
|
||||||
self.assertNotIn('foo', errors)
|
self.assertNotIn('foo', errors)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user