コード例 #1
0
ファイル: tests.py プロジェクト: Zemanta/typed
	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])
コード例 #2
0
ファイル: tests.py プロジェクト: Zemanta/typed
	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]))