def test_min_length(self):
     field = SimpleArrayField(forms.CharField(), min_length=4)
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean('a,b,c')
     self.assertEqual(cm.exception.messages[0], 'List contains 3 items, it should contain no fewer than 4.')
 def test_required(self):
     field = SimpleArrayField(forms.CharField(), required=True)
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean('')
     self.assertEqual(cm.exception.messages[0], 'This field is required.')
 def test_delimiter_with_nesting(self):
     field = SimpleArrayField(SimpleArrayField(forms.CharField()), delimiter='|')
     value = field.clean('a,b|c,d')
     self.assertEqual(value, [['a', 'b'], ['c', 'd']])
 def test_prepare_value(self):
     field = SimpleArrayField(forms.CharField())
     value = field.prepare_value(['a', 'b', 'c'])
     self.assertEqual(value, 'a,b,c')
 def test_validators_fail(self):
     field = SimpleArrayField(forms.RegexField('[a-e]{2}'))
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean('a,bc,de')
     self.assertEqual(cm.exception.messages[0], 'Item 0 in the array did not validate: Enter a valid value.')
 def test_delimiter(self):
     field = SimpleArrayField(forms.CharField(), delimiter='|')
     value = field.clean('a|b|c')
     self.assertEqual(value, ['a', 'b', 'c'])
 def test_validate_fail(self):
     field = SimpleArrayField(forms.CharField(required=True))
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean('a,b,')
     self.assertEqual(cm.exception.messages[0], 'Item 2 in the array did not validate: This field is required.')
 def test_to_python_fail(self):
     field = SimpleArrayField(forms.IntegerField())
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean('a,b,9')
     self.assertEqual(cm.exception.messages[0], 'Item 0 in the array did not validate: Enter a whole number.')
 def test_valid(self):
     field = SimpleArrayField(forms.CharField())
     value = field.clean('a,b,c')
     self.assertEqual(value, ['a', 'b', 'c'])
 def test_delimiter(self):
     field = SimpleArrayField(forms.CharField(), delimiter='|')
     value = field.clean('a|b|c')
     self.assertEqual(value, ['a', 'b', 'c'])
 def test_valid(self):
     field = SimpleArrayField(forms.CharField())
     value = field.clean('a,b,c')
     self.assertEqual(value, ['a', 'b', 'c'])