def test_char_field(self): # data type c = CharField() self.assertRaises(ValidationError, c.validate, 100) self.assertEqual(c.validate("你好"), "你好") self.assertEqual(c.validate("1234"), "1234") # required c = CharField(required=True) self.assertRaises(ValidationError, c.validate, None) c = CharField(required=False) self.assertEqual(c.validate("1234567890"), "1234567890") # min length c = CharField(min_length=4) self.assertRaises(ValidationError, c.validate, "123") self.assertEqual(c.validate("1234"), "1234") self.assertEqual(c.validate("1234"), "1234") # max length c = CharField(max_length=4) self.assertRaises(ValidationError, c.validate, "11111") self.assertEqual(c.validate("1234"), "1234") self.assertEqual(c.validate("123"), "123") self.assertEqual(c.validate(""), "") # both max min c = CharField(max_length=3, min_length=3) self.assertRaises(ValidationError, c.validate, "11") self.assertRaises(ValidationError, c.validate, "1111") self.assertEqual(c.validate("123"), "123")
def test_charfield_not_valid(required, nullable, value, ex_mes): field = CharField(required, nullable) with pytest.raises(ValidationError) as e: field.validate(value) assert str(e.value) == ex_mes
def test_charfield_valid(required, nullable, value): field = CharField(required, nullable) assert not field.validate(value)