From d95b1ddcbef6ef61229080bab1c166d6ee4a161b Mon Sep 17 00:00:00 2001 From: Pavel Dedik Date: Fri, 25 Oct 2019 14:39:33 +0200 Subject: [PATCH] Refs #30907 -- Added more tests for SplitArrayField.has_changed(). --- tests/postgres_tests/test_array.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/tests/postgres_tests/test_array.py b/tests/postgres_tests/test_array.py index 3f54110447..7686ea10a8 100644 --- a/tests/postgres_tests/test_array.py +++ b/tests/postgres_tests/test_array.py @@ -961,9 +961,19 @@ class TestSplitFormField(PostgreSQLSimpleTestCase): model = IntegerArrayModel fields = ('field',) - obj = IntegerArrayModel(field=[1, 2]) - form = Form({'field_0': '1', 'field_1': '2'}, instance=obj) - self.assertFalse(form.has_changed()) + tests = [ + ({}, {'field_0': '', 'field_1': ''}, True), + ({'field': None}, {'field_0': '', 'field_1': ''}, True), + ({'field': [1]}, {'field_0': '', 'field_1': ''}, True), + ({'field': [1]}, {'field_0': '1', 'field_1': '0'}, True), + ({'field': [1, 2]}, {'field_0': '1', 'field_1': '2'}, False), + ({'field': [1, 2]}, {'field_0': 'a', 'field_1': 'b'}, True), + ] + 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):