diff options
| author | Tim Graham <timograham@gmail.com> | 2016-09-06 17:41:54 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-09-22 12:20:58 -0400 |
| commit | 3507d4e773aa9ff2336e7230ba231c4ba6eb568f (patch) | |
| tree | 09467b4724131e91b0afe1d2f133e5e56ba068cf /tests/postgres_tests/test_array.py | |
| parent | 92323d54fd6df077dc523c423c7bb2dd8dbde621 (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.py | 27 |
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) |
