示例#1
0
 def test_int_no_data_loss(self):
     """ Int fields refuse to drop floating point data """
     field = Field(data_type=int, coerce=True)
     with self.assertRaises(ValueError):
         field.coerce(4.5)
     with self.assertRaises(ValueError):
         field.coerce(Decimal('4.5'))
示例#2
0
 def test_coerce_boto_s3key(self):
     """ Coerce boto key to S3 key """
     field = Field(data_type=S3Type('mybucket'))
     boto_key = boto.s3.key.Key()
     boto_key.key = 'my/path'
     ret = field.coerce(boto_key)
     self.assertTrue(isinstance(ret, Key))
     self.assertEqual(ret.key, 'my/path')
示例#3
0
 def test_coerce_number_set_fail(self):
     """ Coerce to number set fails """
     field = Field(data_type=set_(int))
     with self.assertRaises(TypeError):
         field.coerce([2, '4'])
示例#4
0
 def test_coerce_basic_set_fail(self):
     """ Coercing to untyped set fails """
     field = Field(data_type=set)
     with self.assertRaises(TypeError):
         field.coerce(['a', 'b'])
示例#5
0
 def test_coerce_date_fail(self):
     """ Coercing to date fails """
     field = Field(data_type=date, coerce=True)
     with self.assertRaises(TypeError):
         field.coerce(12345)
示例#6
0
 def test_coerce_bool(self):
     """ Coerce to bool """
     field = Field(data_type=bool, coerce=True)
     ret = field.coerce(2)
     self.assertTrue(isinstance(ret, bool))
示例#7
0
 def test_coerce_list(self):
     """ Coerce to list """
     field = Field(data_type=list, coerce=True)
     ret = field.coerce(set([1, 2]))
     self.assertTrue(isinstance(ret, list))
示例#8
0
 def test_coerce_dict(self):
     """ Coerce to dict """
     field = Field(data_type=dict, coerce=True)
     ret = field.coerce([(1, 2)])
     self.assertTrue(isinstance(ret, dict))
示例#9
0
 def test_coerce_str_fail(self):
     """ Coerce to bytes fails if coerce=False """
     field = Field(data_type=six.binary_type)
     with self.assertRaises(TypeError):
         field.coerce(5)
示例#10
0
 def test_always_coerce_unicode_str(self):
     """ Always coerce unicode to bytes """
     field = Field(data_type=six.binary_type)
     ret = field.coerce(six.u('val'))
     self.assertTrue(isinstance(ret, six.binary_type))
示例#11
0
 def test_coerce_str(self):
     """ Coerce to bytes """
     field = Field(data_type=six.binary_type, coerce=True)
     ret = field.coerce(5)
     self.assertTrue(isinstance(ret, six.binary_type))
示例#12
0
 def test_coerce_unicode_fail(self):
     """ Coerce to unicode fails if coerce=False """
     field = Field(data_type=six.text_type)
     with self.assertRaises(TypeError):
         field.coerce(5)
示例#13
0
 def test_coerce_unicode(self):
     """ Coerce to unicode """
     field = Field(data_type=six.text_type, coerce=True)
     ret = field.coerce(5)
     self.assertTrue(isinstance(ret, six.text_type))
示例#14
0
 def test_always_coerce_str_unicode(self):
     """ Always coerce bytes to unicode """
     field = Field(data_type=six.text_type)
     ret = field.coerce(b'val')
     self.assertTrue(isinstance(ret, six.text_type))
示例#15
0
 def test_coerce_decimal_fail(self):
     """ Coerce to Decimal fails if coerce=False """
     field = Field(data_type=Decimal)
     with self.assertRaises(TypeError):
         field.coerce(5.5)
示例#16
0
 def test_int_coerce(self):
     """ Int fields can coerce floats """
     field = Field(data_type=int, coerce=True)
     ret = field.coerce(4.0)
     self.assertEquals(ret, 4)
     self.assertTrue(isinstance(ret, int))
示例#17
0
 def test_coerce_set(self):
     """ Coerce to set """
     field = Field(data_type=set, coerce=True)
     ret = field.coerce([1, 2])
     self.assertTrue(isinstance(ret, set))
示例#18
0
 def test_int_coerce_fail(self):
     """ Coerce to int fails if coerce=False """
     field = Field(data_type=int)
     with self.assertRaises(TypeError):
         field.coerce(4.0)
示例#19
0
 def test_coerce_dict_fail(self):
     """ Coerce to dict fails if coerce=False """
     field = Field(data_type=dict)
     with self.assertRaises(TypeError):
         field.coerce([(1, 2)])
示例#20
0
 def test_int_coerce_long(self):
     """ Int fields can transparently handle longs """
     field = Field(data_type=int)
     val = 100
     ret = field.coerce(val)
     self.assertEqual(ret, val)
示例#21
0
 def test_coerce_list_fail(self):
     """ Coerce to list fails if coerce=False """
     field = Field(data_type=list)
     with self.assertRaises(TypeError):
         field.coerce(set([1, 2]))
示例#22
0
 def test_coerce_float(self):
     """ Coerce to float """
     field = Field(data_type=float, coerce=True)
     ret = field.coerce('4.3')
     self.assertTrue(isinstance(ret, float))
示例#23
0
 def test_coerce_bool_fail(self):
     """ Coerce to bool fails if coerce=False """
     field = Field(data_type=bool)
     with self.assertRaises(TypeError):
         field.coerce(2)
示例#24
0
 def test_always_coerce_int_float(self):
     """ Always coerce ints to float """
     field = Field(data_type=float)
     ret = field.coerce(5)
     self.assertTrue(isinstance(ret, float))
示例#25
0
 def test_coerce_basic_set(self):
     """ Coerce to an untyped set """
     field = Field(data_type=set, coerce=True)
     ret = field.coerce(['a', 'b'])
     self.assertEqual(ret, set(['a', 'b']))
示例#26
0
 def test_coerce_float_fail(self):
     """ Coerce to float fails if coerce=False """
     field = Field(data_type=float)
     with self.assertRaises(TypeError):
         field.coerce('4.3')
示例#27
0
 def test_coerce_number_set(self):
     """ Coerce to number set """
     field = Field(data_type=set_(int), coerce=True)
     ret = field.coerce([2, '4'])
     self.assertEqual(ret, set([2, 4]))
示例#28
0
 def test_coerce_decimal(self):
     """ Coerce to Decimal """
     field = Field(data_type=Decimal, coerce=True)
     ret = field.coerce(5.5)
     self.assertTrue(isinstance(ret, Decimal))
示例#29
0
 def test_coerce_binary_set(self):
     """ Coerce to binary set """
     field = Field(data_type=set_(six.binary_type), coerce=True)
     ret = field.coerce([six.u('hello')])
     self.assertEqual(ret, set([b'hello']))
示例#30
0
 def test_coerce_s3key(self):
     """ Coerce string to S3 key """
     field = Field(data_type=S3Type('mybucket'))
     ret = field.coerce('my/path')
     self.assertTrue(isinstance(ret, Key))
     self.assertEqual(ret.key, 'my/path')