def test_validate_str_options_map_with_aliases(self): options = options_conform( {'a': { 'brief': 'option a', 'aliases': ['b', 'c'] }}) self.assertEqual('a', validate('a', 'str', options=options)) self.assertEqual('a', validate('b', 'str', options=options)) self.assertEqual('a', validate('c', 'str', options=options)) with self.assertRaises(ValueError): validate('d', 'str', options=options)
def test_validate_str_options_map(self): options = options_conform({ 'a': { 'brief': 'option a' }, 'b': { 'brief': 'option b' }, 'c': {} }) self.assertEqual('a', validate('a', 'str', options=options)) with self.assertRaises(ValueError): validate('A', 'str', options=options)
def test_validate_bool(self): self.assertEqual(True, validate(True, 'bool')) self.assertEqual(False, validate(False, 'bool')) self.assertEqual(False, validate(None, 'bool')) self.assertEqual(False, validate('off', 'bool')) self.assertEqual(False, validate('none', 'bool')) self.assertEqual(False, validate('None', 'bool')) self.assertEqual(False, validate('0', 'bool')) self.assertEqual(True, validate(1, 'bool')) self.assertEqual(True, validate('1.1', 'bool'))
def test_validate_str(self): self.assertEqual('there', validate('there', 'str')) with self.assertRaises(ValueError): validate(1, 'str') with self.assertRaises(ValueError): validate(1.0, 'str') with self.assertRaises(ValueError): validate([], 'str') with self.assertRaises(ValueError): validate({}, 'str')
def test_validate_int_range(self): options = {'min': 1, 'max': 11, 'step': 2} self.assertEqual(1, validate(1, 'int', options=options)) self.assertEqual(3, validate(3, 'int', options=options)) self.assertEqual(11, validate(11, 'int', options=options)) with self.assertRaises(ValueError): validate(-1, 'int', options=options) with self.assertRaises(ValueError): validate(2, 'int', options=options) with self.assertRaises(ValueError): validate(13, 'int', options=options)
def test_validate_color(self): self.assertEqual((1, 2, 3, 255), validate([1, 2, 3], 'color')) self.assertEqual((1, 2, 3, 4), validate([1, 2, 3, 4], 'color')) self.assertEqual((255, 0, 0, 255), validate('red', 'color')) with self.assertRaises(ValueError): validate('djflkajfdsfklsj', 'color') with self.assertRaises(ValueError): validate([1, 2], 'color')
def test_validate_font(self): validate('Monospaced', 'font')
def test_validate_none(self): self.assertEqual('hi', validate('hi', 'none'))
def test_validate_dict(self): self.assertEqual({}, validate({}, 'dict')) with self.assertRaises(ValueError): validate('world', 'dict')
def test_validate_bytes(self): self.assertEqual(True, validate(b'12345', 'bytes'))
def test_validate_float(self): self.assertEqual(1, validate(1, 'float')) self.assertEqual(1.1, validate(1.1, 'float')) self.assertEqual(1.1, validate('1.1', 'float')) with self.assertRaises(ValueError): validate('world', 'float')
def test_validate_int_list(self): options = [6, 7, 8, 10, 12, 14, 16, 20, 24, 32, 40, 48, 64] self.assertEqual(10, validate(10, 'int', options=options)) self.assertEqual(10, validate('10', 'int', options=options)) with self.assertRaises(ValueError): self.assertEqual(10, validate(11, 'int', options=options))
def test_validate_int(self): self.assertEqual(1, validate(1, 'int')) self.assertEqual(1, validate('1', 'int')) with self.assertRaises(ValueError): validate('world', 'int')
def test_options_callable_dict(self): self.assertEqual('a', validate('a', 'str', options=lambda: {'a': 'a'})) with self.assertRaises(ValueError): validate('d', 'str', options=lambda: {'a': 'a'})
def test_validate_str_options_list(self): options = options_conform(['a', 'b', 'c']) self.assertEqual('a', validate('a', 'str', options=options)) with self.assertRaises(ValueError): validate('A', 'str', options=options)