From e016c4c65b4aa0521a74e1cba6f75a596ee9ee1c Mon Sep 17 00:00:00 2001 From: Mads Jensen Date: Sat, 26 Aug 2017 16:32:03 +0200 Subject: [PATCH] Refs #27869 -- Omitted field kwargs from GinIndex.deconstruct() if they're None. --- django/contrib/postgres/indexes.py | 6 ++++-- tests/postgres_tests/test_indexes.py | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/django/contrib/postgres/indexes.py b/django/contrib/postgres/indexes.py index 1f7a01faf1..cbfd43c1de 100644 --- a/django/contrib/postgres/indexes.py +++ b/django/contrib/postgres/indexes.py @@ -42,8 +42,10 @@ class GinIndex(Index): def deconstruct(self): path, args, kwargs = super().deconstruct() - kwargs['fastupdate'] = self.fastupdate - kwargs['gin_pending_list_limit'] = self.gin_pending_list_limit + if self.fastupdate is not None: + kwargs['fastupdate'] = self.fastupdate + if self.gin_pending_list_limit is not None: + kwargs['gin_pending_list_limit'] = self.gin_pending_list_limit return path, args, kwargs def create_sql(self, model, schema_editor, using=''): diff --git a/tests/postgres_tests/test_indexes.py b/tests/postgres_tests/test_indexes.py index ae4895a03e..ac19f53ab8 100644 --- a/tests/postgres_tests/test_indexes.py +++ b/tests/postgres_tests/test_indexes.py @@ -84,6 +84,13 @@ class GinIndexTests(PostgreSQLTestCase): } ) + def test_deconstruct_no_args(self): + index = GinIndex(fields=['title'], name='test_title_gin') + path, args, kwargs = index.deconstruct() + self.assertEqual(path, 'django.contrib.postgres.indexes.GinIndex') + self.assertEqual(args, ()) + self.assertEqual(kwargs, {'fields': ['title'], 'name': 'test_title_gin'}) + class SchemaTests(PostgreSQLTestCase):