Fixed #30907 -- Fixed SplitArrayField.has_changed() with removal of empty trailing values.

This commit is contained in:
Pavel Dedik 2019-10-25 14:41:34 +02:00 committed by Mariusz Felisiak
parent bcfbb71c63
commit 711a7d4d50
2 changed files with 31 additions and 0 deletions

View file

@ -975,6 +975,26 @@ class TestSplitFormField(PostgreSQLSimpleTestCase):
form = Form(data, instance=obj)
self.assertIs(form.has_changed(), expected_result)
def test_splitarrayfield_remove_trailing_nulls_has_changed(self):
class Form(forms.ModelForm):
field = SplitArrayField(forms.IntegerField(), required=False, size=2, remove_trailing_nulls=True)
class Meta:
model = IntegerArrayModel
fields = ('field',)
tests = [
({}, {'field_0': '', 'field_1': ''}, False),
({'field': None}, {'field_0': '', 'field_1': ''}, False),
({'field': []}, {'field_0': '', 'field_1': ''}, False),
({'field': [1]}, {'field_0': '1', 'field_1': ''}, False),
]
for initial, data, expected_result in tests:
with self.subTest(initial=initial, data=data):
obj = IntegerArrayModel(**initial)
form = Form(data, instance=obj)
self.assertIs(form.has_changed(), expected_result)
class TestSplitFormWidget(PostgreSQLWidgetTestCase):