From 06264258dc7c7cc69b2ba5f70f782988ccb2b06c Mon Sep 17 00:00:00 2001 From: David Sanders Date: Thu, 8 Feb 2024 19:57:14 +1100 Subject: Fixed #35175 -- Made migraton writer preserve keyword-only arguments. Thanks Gerald Goh for the report. --- tests/postgres_tests/test_operations.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tests/postgres_tests') diff --git a/tests/postgres_tests/test_operations.py b/tests/postgres_tests/test_operations.py index ff344e3cb0..bc2ae42096 100644 --- a/tests/postgres_tests/test_operations.py +++ b/tests/postgres_tests/test_operations.py @@ -4,6 +4,7 @@ from migrations.test_base import OperationTestBase from django.db import IntegrityError, NotSupportedError, connection, transaction from django.db.migrations.state import ProjectState +from django.db.migrations.writer import OperationWriter from django.db.models import CheckConstraint, Index, Q, UniqueConstraint from django.db.utils import ProgrammingError from django.test import modify_settings, override_settings @@ -393,6 +394,25 @@ class CreateCollationTests(PostgreSQLTestCase): self.assertEqual(len(captured_queries), 1) self.assertIn("DROP COLLATION", captured_queries[0]["sql"]) + def test_writer(self): + operation = CreateCollation( + "sample_collation", + "und-u-ks-level2", + provider="icu", + deterministic=False, + ) + buff, imports = OperationWriter(operation, indentation=0).serialize() + self.assertEqual(imports, {"import django.contrib.postgres.operations"}) + self.assertEqual( + buff, + "django.contrib.postgres.operations.CreateCollation(\n" + " name='sample_collation',\n" + " locale='und-u-ks-level2',\n" + " provider='icu',\n" + " deterministic=False,\n" + "),", + ) + @unittest.skipUnless(connection.vendor == "postgresql", "PostgreSQL specific tests.") class RemoveCollationTests(PostgreSQLTestCase): -- cgit v1.3