summaryrefslogtreecommitdiff
path: root/tests/postgres_tests/test_array.py
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2016-09-06 17:41:54 -0400
committerTim Graham <timograham@gmail.com>2016-09-22 12:20:58 -0400
commit3507d4e773aa9ff2336e7230ba231c4ba6eb568f (patch)
tree09467b4724131e91b0afe1d2f133e5e56ba068cf /tests/postgres_tests/test_array.py
parent92323d54fd6df077dc523c423c7bb2dd8dbde621 (diff)
Fixed #27186 -- Fixed model form default fallback for MultiWidget, FileInput, SplitDateTimeWidget, SelectDateWidget, and SplitArrayWidget.
Thanks Matt Westcott for the review.
Diffstat (limited to 'tests/postgres_tests/test_array.py')
-rw-r--r--tests/postgres_tests/test_array.py27
1 files changed, 26 insertions, 1 deletions
diff --git a/tests/postgres_tests/test_array.py b/tests/postgres_tests/test_array.py
index b15d4996f2..db67ab714e 100644
--- a/tests/postgres_tests/test_array.py
+++ b/tests/postgres_tests/test_array.py
@@ -21,7 +21,9 @@ from .models import (
try:
from django.contrib.postgres.fields import ArrayField
- from django.contrib.postgres.forms import SimpleArrayField, SplitArrayField
+ from django.contrib.postgres.forms import (
+ SimpleArrayField, SplitArrayField, SplitArrayWidget,
+ )
except ImportError:
pass
@@ -756,3 +758,26 @@ class TestSplitFormField(PostgreSQLTestCase):
'Item 0 in the array did not validate: Ensure this value has at most 2 characters (it has 3).',
'Item 2 in the array did not validate: Ensure this value has at most 2 characters (it has 4).',
])
+
+ def test_splitarraywidget_value_omitted_from_data(self):
+ class Form(forms.ModelForm):
+ field = SplitArrayField(forms.IntegerField(), required=False, size=2)
+
+ class Meta:
+ model = IntegerArrayModel
+ fields = ('field',)
+
+ form = Form({'field_0': '1', 'field_1': '2'})
+ self.assertEqual(form.errors, {})
+ obj = form.save(commit=False)
+ self.assertEqual(obj.field, [1, 2])
+
+
+class TestSplitFormWidget(PostgreSQLTestCase):
+
+ def test_value_omitted_from_data(self):
+ widget = SplitArrayWidget(forms.TextInput(), size=2)
+ self.assertIs(widget.value_omitted_from_data({}, {}, 'field'), True)
+ self.assertIs(widget.value_omitted_from_data({'field_0': 'value'}, {}, 'field'), False)
+ self.assertIs(widget.value_omitted_from_data({'field_1': 'value'}, {}, 'field'), False)
+ self.assertIs(widget.value_omitted_from_data({'field_0': 'value', 'field_1': 'value'}, {}, 'field'), False)