def test_unbounded(self):
     field = ArrayField(models.IntegerField())
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean([1, None], None)
     self.assertEqual(cm.exception.code, 'item_invalid')
     self.assertEqual(
         cm.exception.message % cm.exception.params,
         'Item 1 in the array did not validate: This field cannot be null.')
 def test_nested_array_mismatch(self):
     field = ArrayField(ArrayField(models.IntegerField()))
     field.clean([[1, 2], [3, 4]], None)
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean([[1, 2], [3, 4, 5]], None)
     self.assertEqual(cm.exception.code, 'nested_array_mismatch')
     self.assertEqual(cm.exception.messages[0], 'Nested arrays must have the same length.')
 def test_with_size(self):
     field = ArrayField(models.IntegerField(), size=3)
     field.clean([1, 2, 3], None)
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean([1, 2, 3, 4], None)
     self.assertEqual(
         cm.exception.messages[0],
         'List contains 4 items, it should contain no more than 3.')
 def test_model_field_formfield_size(self):
     model_field = ArrayField(models.CharField(max_length=27), size=4)
     form_field = model_field.formfield()
     self.assertIsInstance(form_field, SimpleArrayField)
     self.assertEqual(form_field.max_length, 4)
 def test_model_field_formfield(self):
     model_field = ArrayField(models.CharField(max_length=27))
     form_field = model_field.formfield()
     self.assertIsInstance(form_field, SimpleArrayField)
     self.assertIsInstance(form_field.base_field, forms.CharField)
     self.assertEqual(form_field.base_field.max_length, 27)
Example #6
0
 def test_with_size(self):
     field = ArrayField(models.IntegerField(), size=3)
     field.clean([1, 2, 3], None)
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean([1, 2, 3, 4], None)
     self.assertEqual(cm.exception.messages[0], 'List contains 4 items, it should contain no more than 3.')
 def test_blank_true(self):
     field = ArrayField(models.IntegerField(blank=True, null=True))
     # This should not raise a validation error
     field.clean([1, None], None)
Example #8
0
 def test_unbounded(self):
     field = ArrayField(models.IntegerField())
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean([1, None], None)
     self.assertEqual(cm.exception.code, 'item_invalid')
     self.assertEqual(cm.exception.message % cm.exception.params, 'Item 1 in the array did not validate: This field cannot be null.')
 def test_deconstruct_args(self):
     field = ArrayField(models.CharField(max_length=20))
     name, path, args, kwargs = field.deconstruct()
     new = ArrayField(*args, **kwargs)
     self.assertEqual(new.base_field.max_length, field.base_field.max_length)
 def test_deconstruct_with_size(self):
     field = ArrayField(models.IntegerField(), size=3)
     name, path, args, kwargs = field.deconstruct()
     new = ArrayField(*args, **kwargs)
     self.assertEqual(new.size, field.size)
 def test_deconstruct(self):
     field = ArrayField(models.IntegerField())
     name, path, args, kwargs = field.deconstruct()
     new = ArrayField(*args, **kwargs)
     self.assertEqual(type(new.base_field), type(field.base_field))
 def test_invalid_base_fields(self):
     field = ArrayField(models.ManyToManyField('tests.IntegerArrayModel'))
     field.set_attributes_from_name('field')
     errors = field.check()
     self.assertEqual(len(errors), 1)
     self.assertEqual(errors[0].id, 'postgres.E002')
 def test_field_checks(self):
     field = ArrayField(models.CharField())
     field.set_attributes_from_name('field')
     errors = field.check()
     self.assertEqual(len(errors), 1)
     self.assertEqual(errors[0].id, 'postgres.E001')