def test_set(self): values = [1, 2, 3, 'a', None] t = typed.set(*values) for value in values: self.assertEqual(t.load(value), value) self.assertEqual(t.save(value), value) for value in [False, 'aerg', 4, 1234, [1, 2, 3], {'a': 1}, self]: self.assertRaises(ValueError, t.load, value) self.assertRaises(ValueError, t.save, value)
def test_set(self): t1 = typed.set(1, 2, 3) self.assertTrue(isinstance(t1, typed.SetType)) self.assertItemsEqual(t1.values, [1, 2, 3]) self.assertTrue(t1.test(1)) self.assertTrue(t1.test(2)) self.assertTrue(t1.test(3)) self.assertFalse(t1.test(4)) self.assertFalse(t1.test(1209)) #self.assertFalse(t1.test(True)) for value in [[1, 2, 3], 1.2, None, {'a': 1}, self]: self.assertFalse(t1.test(value)) t2 = t1 | typed.string self.assertTrue(isinstance(t2, typed.UnionType)) self.assertItemsEqual(t2.types, [t1, typed.string]) t3 = t1 | typed.set(3, None, 'a') self.assertTrue(isinstance(t3, typed.SetType)) self.assertItemsEqual(t3.values, [1, 2, 3, None, 'a'])
def test_dict(self): datetime_format = '%Y-%m-%d %H:%M:%S' dt = datetime.datetime(2013, 9, 21, 11, 42, 33) dt_str = dt.strftime(datetime_format) t = typed.dict({ 'a': typed.string, 'b': typed.int.optional, 'c': typed.bool.default(False), 'd': typed.set(0, 1).default(0), 'e': typed.datetime.format(datetime_format).optional, 'f': typed.optional, 'g': typed.default(None), 'h': (typed.int | typed.none).default(None) }) self.assertEqual(t.load({'a': ''}), {'a': '', 'c': False, 'd': 0, 'g': None, 'h': None}) self.assertEqual(t.load({'a': '', 'f': 1, 'g': 'foo'}), {'a': '', 'c': False, 'd': 0, 'f': 1, 'g': 'foo', 'h': None}) self.assertEqual(t.load({'a': '', 'f': True, 'g': [1, 2, 3]}), {'a': '', 'c': False, 'd': 0, 'f': True, 'g': [1, 2, 3], 'h': None}) self.assertEqual(t.load({'a': '', 'b': 2, 'c': True, 'd': 1}), {'a': '', 'b': 2, 'c': True, 'd': 1, 'g': None, 'h': None}) self.assertEqual(t.load({'a': '', 'e': dt_str, 'h': 1}), {'a': '', 'c': False, 'd': 0, 'e': dt, 'g': None, 'h': 1}) self.assertEqual(t.load({'a': '', 'h': None}), {'a': '', 'c': False, 'd': 0, 'g': None, 'h': None}) self.assertEqual(t.save({'a': ''}), {'a': ''}) self.assertEqual(t.save({'a': '', 'd': 0, 'h': None}), {'a': ''}) self.assertEqual(t.save({'a': '', 'c': False, 'd': 0, 'g': None, 'h': None}), {'a': ''}) self.assertEqual(t.save({'a': '', 'c': False, 'd': 0, 'f': 1, 'g': [1, 2, 3], 'h': None}), {'a': '', 'f': 1, 'g': [1, 2, 3]}) self.assertEqual(t.save({'a': '', 'c': False, 'd': 0, 'f': True, 'g': None, 'h': None}), {'a': '', 'f': True}) self.assertEqual(t.save({'a': '', 'b': 2, 'c': True, 'd': 1, 'g': None, 'h': None}), {'a': '', 'b': 2, 'c': True, 'd': 1}) self.assertEqual(t.save({'a': '', 'c': False, 'd': 0, 'e': dt, 'g': None, 'h': 1}), {'a': '', 'e': dt_str, 'h': 1}) self.assertRaises(ValueError, t.load, {}) self.assertRaises(ValueError, t.load, {'a': '', 'b': 'foo'}) self.assertRaises(ValueError, t.load, {'a': '', 'd': 2}) self.assertRaises(ValueError, t.load, {'a': '', 'e': '2012-12-12T12:12:12'}) self.assertRaises(ValueError, t.load, {'a': '', 'h': 'foo'}) self.assertRaises(ValueError, t.save, {}) self.assertRaises(ValueError, t.save, {'a': '', 'b': 'foo'}) self.assertRaises(ValueError, t.save, {'a': '', 'd': 2}) self.assertRaises(ValueError, t.save, {'a': '', 'e': '2012-12-12T12:12:12'}) self.assertRaises(ValueError, t.save, {'a': '', 'h': 'foo'}) self.assertRaises(ValueError, t.save, {'a': '', 'c': False, 'd': 0, 'g': None, 'h': 1, 't': 0, 'u': 0, 'v': 0})