Add tests for defined None values in required/strict mode

This commit is contained in:
Roman Mogylatov 2021-01-16 08:37:20 -05:00
parent bafb865127
commit d3d907d4e5

View File

@ -105,6 +105,14 @@ class ConfigTests(unittest.TestCase):
with self.assertRaisesRegex(errors.Error, 'Undefined configuration option "config.a"'): with self.assertRaisesRegex(errors.Error, 'Undefined configuration option "config.a"'):
provider() provider()
def test_required_defined_none(self):
provider = providers.Callable(
lambda value: value,
self.config.a.required(),
)
self.config.from_dict({'a': None})
self.assertIsNone(provider())
def test_required_no_side_effect(self): def test_required_no_side_effect(self):
_ = providers.Callable( _ = providers.Callable(
lambda value: value, lambda value: value,
@ -206,6 +214,11 @@ class ConfigTests(unittest.TestCase):
with self.assertRaisesRegex(errors.Error, 'Undefined configuration option "config.a"'): with self.assertRaisesRegex(errors.Error, 'Undefined configuration option "config.a"'):
self.config.a() self.config.a()
def test_value_of_defined_none_option_in_strict_mode(self):
self.config = providers.Configuration(strict=True)
self.config.from_dict({'a': None})
self.assertIsNone(self.config.a())
def test_getting_of_special_attributes(self): def test_getting_of_special_attributes(self):
with self.assertRaises(AttributeError): with self.assertRaises(AttributeError):
self.config.__name__ self.config.__name__