summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2017-11-21 08:11:50 -0500
committerTim Graham <timograham@gmail.com>2017-11-21 08:41:41 -0500
commit90c120c2b73534bd84166f5e67a01cddfeb4cede (patch)
treefb2f9eac6102a910173d57d283de0d43cc88f147
parent18324f2e657c68947e110f96a1a529e1e6c3f55e (diff)
[1.11.x] Added assertion helpers for PostgreSQL's server-side cursor tests.
Backport of 6cb6382639cbd29c8348b42c4d43b02c950eff3a from master
-rw-r--r--tests/backends/test_postgresql.py40
1 files changed, 17 insertions, 23 deletions
diff --git a/tests/backends/test_postgresql.py b/tests/backends/test_postgresql.py
index 969e3dfaef..8ea8638306 100644
--- a/tests/backends/test_postgresql.py
+++ b/tests/backends/test_postgresql.py
@@ -37,29 +37,28 @@ class ServerSideCursorsPostgres(TestCase):
connection.settings_dict[setting] = kwargs[setting]
yield
- def test_server_side_cursor(self):
- persons = Person.objects.iterator()
- next(persons) # Open a server-side cursor
- cursors = self.inspect_cursors()
- self.assertEqual(len(cursors), 1)
- self.assertIn('_django_curs_', cursors[0].name)
- self.assertFalse(cursors[0].is_scrollable)
- self.assertFalse(cursors[0].is_holdable)
- self.assertFalse(cursors[0].is_binary)
-
- def test_server_side_cursor_many_cursors(self):
- persons = Person.objects.iterator()
- persons2 = Person.objects.iterator()
- next(persons) # Open a server-side cursor
- next(persons2) # Open a second server-side cursor
+ def assertUsesCursor(self, queryset, num_expected=1):
+ next(queryset) # Open a server-side cursor
cursors = self.inspect_cursors()
- self.assertEqual(len(cursors), 2)
+ self.assertEqual(len(cursors), num_expected)
for cursor in cursors:
self.assertIn('_django_curs_', cursor.name)
self.assertFalse(cursor.is_scrollable)
self.assertFalse(cursor.is_holdable)
self.assertFalse(cursor.is_binary)
+ def asserNotUsesCursor(self, queryset):
+ self.assertUsesCursor(queryset, num_expected=0)
+
+ def test_server_side_cursor(self):
+ self.assertUsesCursor(Person.objects.iterator())
+
+ def test_server_side_cursor_many_cursors(self):
+ persons = Person.objects.iterator()
+ persons2 = Person.objects.iterator()
+ next(persons) # Open a server-side cursor
+ self.assertUsesCursor(persons2, num_expected=2)
+
def test_closed_server_side_cursor(self):
persons = Person.objects.iterator()
next(persons) # Open a server-side cursor
@@ -70,13 +69,8 @@ class ServerSideCursorsPostgres(TestCase):
def test_server_side_cursors_setting(self):
with self.override_db_setting(DISABLE_SERVER_SIDE_CURSORS=False):
persons = Person.objects.iterator()
- next(persons) # Open a server-side cursor
- cursors = self.inspect_cursors()
- self.assertEqual(len(cursors), 1)
+ self.assertUsesCursor(persons)
del persons # Close server-side cursor
with self.override_db_setting(DISABLE_SERVER_SIDE_CURSORS=True):
- persons = Person.objects.iterator()
- next(persons) # Should not open a server-side cursor
- cursors = self.inspect_cursors()
- self.assertEqual(len(cursors), 0)
+ self.asserNotUsesCursor(Person.objects.iterator())