def test_tuple(self): t1 = typed.tuple(typed.int, typed.datetime.format('%Y-%m-%d %H:%M:%S'), typed.string | typed.none) self.assertEqual(t1.load(tuple([4, '2013-10-11 11:02:45', 'foo'])), (4, datetime.datetime(2013, 10, 11, 11, 02, 45), 'foo')) self.assertEqual(t1.load(tuple([4, '2013-10-11 11:02:45', None])), (4, datetime.datetime(2013, 10, 11, 11, 02, 45), None)) self.assertRaises(ValueError, t1.load, tuple([4, '2013-10-11 11:02:45'])) self.assertRaises(ValueError, t1.load, tuple([4, '2013-10-11T11:02:45', 'foo'])) self.assertRaises(ValueError, t1.load, tuple([True, '2013-10-11 11:02:45', 'foo'])) self.assertRaises(ValueError, t1.load, tuple([3, '2013-10-11 11:02:45', 'foo', None])) self.assertRaises(ValueError, t1.load, [3, '2013-10-11 11:02:45', None]) self.assertEqual(t1.save(tuple([4, datetime.datetime(2013, 10, 11, 11, 02, 45), None])), (4, '2013-10-11 11:02:45', None)) self.assertEqual(t1.save(tuple([0, datetime.datetime(2013, 10, 11, 11, 02, 45), 'foo'])), (0, '2013-10-11 11:02:45', 'foo')) self.assertRaises(ValueError, t1.save, tuple([4, datetime.datetime(2013, 10, 11, 11, 02, 45)])) self.assertRaises(ValueError, t1.save, tuple([True, datetime.datetime(2013, 10, 11, 11, 02, 45), 'foo'])) self.assertRaises(ValueError, t1.save, tuple([3, datetime.datetime(2013, 10, 11, 11, 02, 45), 'foo', None])) self.assertRaises(ValueError, t1.save, [3, datetime.datetime(2013, 10, 11, 11, 02, 45), None]) t2 = t1.format(typed.list) self.assertEqual(t2.load([4, '2013-10-11 11:02:45', None]), (4, datetime.datetime(2013, 10, 11, 11, 02, 45), None)) self.assertRaises(ValueError, t2.load, tuple([4, '2013-10-11 11:02:45', None])) self.assertRaises(ValueError, t2.load, 1) self.assertEqual(t2.save(tuple([4, datetime.datetime(2013, 10, 11, 11, 02, 45), None])), [4, '2013-10-11 11:02:45', None]) self.assertEqual(t2.save(tuple([0, datetime.datetime(2013, 10, 11, 11, 02, 45), 'foo'])), [0, '2013-10-11 11:02:45', 'foo']) self.assertRaises(ValueError, t2.save, [3, datetime.datetime(2013, 10, 11, 11, 02, 45), None])
def test_tuple(self): self.assertRaises(TypeError, typed.tuple, int, bool) t1 = typed.tuple(typed.int, typed.bool) self.assertTrue(t1.test(tuple([1, True]))) self.assertTrue(t1.test(tuple([4, False]))) self.assertFalse(t1.test(tuple([1]))) self.assertFalse(t1.test(tuple([1, True, False]))) self.assertFalse(t1.test(tuple([True, 1]))) self.assertFalse(t1.test([1, True])) for value in [datetime.datetime.now(), 1, 'a', True, [1.2, 2.3, 3.4], 1.2, None, {'a': 1}, self]: self.assertFalse(t1.test(value)) t2 = t1.format(typed.list) self.assertFalse(t2.test([1, True]))