Exemplo n.º 1
0
	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)
Exemplo n.º 2
0
	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'])
Exemplo n.º 3
0
	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})