def test_string_list_validator_fails(self): environ['KEY'] = 'true,false' with self.assertRaises(ConfigParseError) as context: def validator(input): raise RuntimeError('some message') self.config.declare('key', parse_bool_list(validator=validator)) self.assertEqual(context.exception.key, 'KEY')
def test_bool_list_validator_applied_to_each_element(self): environ['KEY'] = 'true,false' values_validated = [] def validator(input): nonlocal values_validated values_validated.append(input) self.config.declare('key', parse_bool_list(validator=validator)) self.assertListEqual([True, False], values_validated)
def test_dict(self): environ['KEY_STRING'] = 'string' environ['KEY_INT'] = '1' environ['KEY_FLOAT'] = '1.4' environ['KEY_BOOL'] = 'false' environ['KEY_STRING_LIST'] = 'one,two' environ['KEY_FLOAT_LIST'] = '1.4, 3.89' environ['KEY_INT_LIST'] = '1,2,3' environ['KEY_BOOL_LIST'] = '1,FALSE,no' self.config.declare( 'key', { 'string': parse_str(), 'int': parse_int(), 'float': parse_float(), 'bool': parse_bool(), 'string_list': parse_str_list(), 'int_list': parse_int_list(), 'float_list': parse_float_list(), 'bool_list': parse_bool_list(), }, ) result = self.config.get('key') self.assertDictEqual( { 'string': 'string', 'int': 1, 'float': 1.4, 'bool': False, 'string_list': ['one', 'two'], 'int_list': [1, 2, 3], 'float_list': [1.4, 3.89], 'bool_list': [True, False, False], }, result)
def test_bool_list_one_value_invalid(self): environ['KEY'] = 'True,em,No' with self.assertRaises(ConfigParseError): self.config.declare('key', parse_bool_list())
def test_bool_list_different_separator(self): environ['KEY'] = 'yes-FALSE-1' self.config.declare('key', parse_bool_list(separator='-')) result = self.config.get('key') self.assertEqual([True, False, True], result)
def test_bool_list_return_default_when_falsy(self): default_value = [] self.config.declare('key', parse_bool_list(default_value)) result = self.config.get('key') self.assertEqual(default_value, result)
def test_bool_list_variable_missing(self): with self.assertRaises(ConfigValueError): self.config.declare('key', parse_bool_list())
def test_bool_list_trim_whitespace(self): environ['KEY'] = 'yes\t, FALSE\n, 1 \t' self.config.declare('key', parse_bool_list()) result = self.config.get('key') self.assertEqual(result, [True, False, True])
def test_bool_list(self): environ['KEY'] = 'yes,FALSE,1' self.config.declare('key', parse_bool_list()) result = self.config.get('key') self.assertEqual(result, [True, False, True])