def test_attributes(self): integer_field = fields.IntegerField(column_name='iField', max_length=100, default=0) with self.assertRaises(AttributeError) as context: integer_field.lookup_value(None, None) self.assertEqual("IntegerField not allow attribute max_length", str(context.exception)) integer_field = fields.IntegerField() integer_field.name = 'integer_field' with self.assertRaises(AttributeError) as context: integer_field.lookup_value(None, None) self.assertEqual("Field integer_field required value", str(context.exception)) integer_field = fields.IntegerField(blank=True) integer_field.name = 'integer_field' db_v = integer_field.lookup_value(None, None) self.assertIsNone(db_v) integer_field = fields.IntegerField(default='Not Allowed') integer_field.name = 'integer_field' with self.assertRaises(error.DBTypeError) as context: integer_field.lookup_value(None, None) self.assertEqual( "IntegerField required value type <class 'int'>, " "get <class 'str'>", str(context.exception)) integer_field = fields.IntegerField(default=100) db_v = integer_field.lookup_value(None, None) self.assertEqual(db_v, 100) p_v = integer_field.python_value(100) self.assertEqual(100, p_v) with self.assertRaises(ValueError) as context: integer_field.python_value('AAAAA') self.assertEqual("invalid literal for int() with base 10: 'AAAAA'", str(context.exception))
def test_default_factoy(self): def a(): return 2 integer_field = fields.IntegerField(default=a) db_v = integer_field.lookup_value(None, None) self.assertEqual(db_v, 2)
def test_python_value(self): integer_field = fields.IntegerField() p_v = integer_field.python_value(100) self.assertEqual(p_v, 100)
def test_lookup_value(self): integer_field = fields.IntegerField() db_v = integer_field.lookup_value(None, 100) self.assertEqual(db_v, 100)