From 0bc2bbf041df40a6ecb6262b2e5f3bb659dd8da8 Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Thu, 6 Apr 2023 12:44:37 -0700 Subject: [4.2.x] Fixed #34466 -- Reallowed setting cursor_factory in DATABASES["options"] on PostgreSQL. Regression in 09ffc5c1212d4ced58b708cbbf3dfbfb77b782ca. Backport of 73cbb372baa45d1fdafd571e2f430a980831f722 from main --- tests/backends/postgresql/tests.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests') diff --git a/tests/backends/postgresql/tests.py b/tests/backends/postgresql/tests.py index ab66e7ab0e..5589daa0c2 100644 --- a/tests/backends/postgresql/tests.py +++ b/tests/backends/postgresql/tests.py @@ -296,6 +296,24 @@ class Tests(TestCase): finally: new_connection.close() + def test_connect_custom_cursor_factory(self): + """ + A custom cursor factory can be configured with DATABASES["options"] + ["cursor_factory"]. + """ + from django.db.backends.postgresql.base import Cursor + + class MyCursor(Cursor): + pass + + new_connection = connection.copy() + new_connection.settings_dict["OPTIONS"]["cursor_factory"] = MyCursor + try: + new_connection.connect() + self.assertEqual(new_connection.connection.cursor_factory, MyCursor) + finally: + new_connection.close() + def test_connect_no_is_usable_checks(self): new_connection = connection.copy() try: -- cgit v1.3