def test_list_schema_good(self): map_schema = {'valid': {'Type': 'Boolean'}} list_schema = {'Type': 'Map', 'Schema': map_schema} p = properties.Property({'Type': 'List', 'Schema': list_schema}) self.assertEqual(p.validate_data([{'valid': 'TRUE'}, {'valid': 'False'}]), [{'valid': True}, {'valid': False}])
def test_boolean_true(self): p = properties.Property({'Type': 'Boolean'}) self.assertEqual(p.validate_data('True'), True) self.assertEqual(p.validate_data('true'), True) self.assertEqual(p.validate_data(True), True)
def test_string_value_list_good(self): schema = {'Type': 'String', 'AllowedValues': ['foo', 'bar', 'baz']} p = properties.Property(schema) self.assertEqual(p.validate_data('bar'), 'bar')
def test_string_pattern_good(self): schema = {'Type': 'String', 'AllowedPattern': '[a-z]*'} p = properties.Property(schema) self.assertEqual(p.validate_data('foo'), 'foo')
def test_default(self): p = properties.Property({'Type': 'String', 'Default': 'wibble'}) self.assertEqual(p.default(), 'wibble')
def test_implemented_true(self): p = properties.Property({'Type': 'String', 'Implemented': True}) self.assertTrue(p.implemented())
def test_implemented_default(self): p = properties.Property({'Type': 'String'}) self.assertTrue(p.implemented())
def test_required_false(self): p = properties.Property({'Type': 'String', 'Required': False}) self.assertFalse(p.required())
def test_list_value_list_good(self): schema = {'Type': 'List', 'AllowedValues': ['foo', 'bar', 'baz']} p = properties.Property(schema) self.assertEqual(p.validate_data(['bar', 'foo']), ['bar', 'foo'])
def test_list_value_list_bad(self): schema = {'Type': 'List', 'AllowedValues': ['foo', 'bar', 'baz']} p = properties.Property(schema) self.assertRaises(ValueError, p.validate_data, ['foo', 'wibble'])
def test_list_dict(self): p = properties.Property({'Type': 'List'}) self.assertRaises(TypeError, p.validate_data, {'foo': 'bar'})
def test_list_good(self): p = properties.Property({'Type': 'List'}) self.assertEqual(p.validate_data(['foo', 'bar']), ['foo', 'bar'])
def test_list_string(self): p = properties.Property({'Type': 'List'}) self.assertRaises(TypeError, p.validate_data, 'foo')
def test_boolean_invalid(self): p = properties.Property({'Type': 'Boolean'}) self.assertRaises(ValueError, p.validate_data, 'fish')
def test_boolean_false(self): p = properties.Property({'Type': 'Boolean'}) self.assertEqual(p.validate_data('False'), False) self.assertEqual(p.validate_data('false'), False) self.assertEqual(p.validate_data(False), False)
def test_list_schema_int_good(self): list_schema = {'Type': 'Integer'} p = properties.Property({'Type': 'List', 'Schema': list_schema}) self.assertEqual(p.validate_data([1, 2, 3]), [1, 2, 3])
def test_list_schema_int_bad_data(self): list_schema = {'Type': 'Integer'} p = properties.Property({'Type': 'List', 'Schema': list_schema}) self.assertRaises(TypeError, p.validate_data, [42, 'fish'])
def test_map_list(self): p = properties.Property({'Type': 'Map'}) self.assertRaises(TypeError, p.validate_data, ['foo'])
def test_required_true(self): p = properties.Property({'Type': 'String', 'Required': True}) self.assertTrue(p.required())
def test_map_schema_good(self): map_schema = {'valid': {'Type': 'Boolean'}} p = properties.Property({'Type': 'Map', 'Schema': map_schema}) self.assertEqual(p.validate_data({'valid': 'TRUE'}), {'valid': True})
def test_implemented_false(self): p = properties.Property({'Type': 'String', 'Implemented': False}) self.assertFalse(p.implemented())
def test_map_schema_missing_data(self): map_schema = {'valid': {'Type': 'Boolean'}} p = properties.Property({'Type': 'Map', 'Schema': map_schema}) self.assertEqual(p.validate_data({}), {'valid': None})
def test_no_default(self): p = properties.Property({'Type': 'String'}) self.assertFalse(p.has_default())
def test_map_schema_missing_required_data(self): map_schema = {'valid': {'Type': 'Boolean', 'Required': True}} p = properties.Property({'Type': 'Map', 'Schema': map_schema}) self.assertRaises(ValueError, p.validate_data, {})
def test_type(self): p = properties.Property({'Type': 'String'}) self.assertEqual(p.type(), 'String')
def test_list_schema_bad_data(self): map_schema = {'valid': {'Type': 'Boolean'}} list_schema = {'Type': 'Map', 'Schema': map_schema} p = properties.Property({'Type': 'List', 'Schema': list_schema}) self.assertRaises(ValueError, p.validate_data, [{'valid': 'True'}, {'valid': 'fish'}])
def test_string_pattern_bad_suffix(self): schema = {'Type': 'String', 'AllowedPattern': '[a-z]*'} p = properties.Property(schema) self.assertRaises(ValueError, p.validate_data, 'foo1')
def test_required_default(self): p = properties.Property({'Type': 'String'}) self.assertFalse(p.required())
def test_string_value_list_bad(self): schema = {'Type': 'String', 'AllowedValues': ['foo', 'bar', 'baz']} p = properties.Property(schema) self.assertRaises(ValueError, p.validate_data, 'blarg')
def test_number_high(self): schema = {'Type': 'Number', 'MaxValue': '2'} p = properties.Property(schema) self.assertRaises(ValueError, p.validate_data, '3')