def test_validation(self): field = IntegerField() field._set_attr_name('n') self.assertIsNone(field.validate(None)) self.assertIsNone(field.validate('')) self.assertIsNone(field.validate('0')) self.assertIsNone(field.validate('1')) self.assertIsNone(field.validate(1)) self.assertEqual('Must be integer', field.validate('foo')) self.assertEqual('Must be integer', field.validate('123h')) self.assertEqual('Must be integer', field.validate('0x456'))
def test_normalization(self): field = IntegerField() self.assertIsNone(field.normalize(None)) self.assertIsNone(field.normalize('')) self.assertEqual(0, field.normalize('0')) self.assertEqual(1, field.normalize(1)) self.assertEqual(0, field.normalize('0.0')) self.assertEqual(1000, field.normalize('1,000.0')) self.assertEqual(1111000, field.normalize('1,111,000.0')) self.assertEqual(1, field.normalize('1'))
def test_default(self): field = IntegerField(default=1) self.assertEqual(1, field.normalize(None)) self.assertEqual(1, field.normalize('')) self.assertEqual(0, field.normalize('0')) self.assertEqual(0, field.normalize('0.0')) self.assertEqual(1000, field.normalize('1,000.0')) self.assertEqual(1111000, field.normalize('1,111,000.0')) self.assertEqual(1, field.normalize('1'))
def test_zero(self): field = IntegerField() self.assertEqual('0', field.localize(0))
def test_repeated_localization(self): field = IntegerField(repeated=True) self.assertListEqual(['1,000', '2,222,222', '3'], field.localize([1000, 2222222, 3])) self.assertListEqual([''], field.localize([None]))
def test_validation_upper(self): field = IntegerField(upper=1) field._set_attr_name('n') self.assertIsNone(field.validate('1')) self.assertEqual('Must be less than 1', field.validate('2'))
def test_validation_lower(self): field = IntegerField(lower=1) field._set_attr_name('n') self.assertIsNone(field.validate('1')) self.assertEqual('Must be greater than 1', field.validate('0'))
class CategoriaForm(ModelForm): _model_class = Categoria _include = [Categoria.nome] quantidade = IntegerField(required=True, lower=0)