Skip to content

Commit cba6d39

Browse files
Roman Konovaldvarrazzo
Roman Konoval
authored andcommitted
removes duplication in tests
1 parent 282360d commit cba6d39

File tree

1 file changed

+22
-39
lines changed

1 file changed

+22
-39
lines changed

tests/test_notify.py

Lines changed: 22 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import os
2727
import unittest
2828
from collections import deque
29+
from functools import partial
2930

3031
import psycopg2
3132
from psycopg2 import extensions
@@ -129,69 +130,51 @@ def test_notifies_received_on_execute(self):
129130
self.assertEqual(pid, self.conn.notifies[0][0])
130131
self.assertEqual('foo', self.conn.notifies[0][1])
131132

132-
@slow
133-
@skip_if_windows
134-
def test_notifies_received_on_commit(self):
133+
def _test_notifies_received_on_operation(self, operation, execute_query=True):
135134
self.listen('foo')
136135
self.conn.commit()
137-
self.conn.cursor().execute('select 1;')
136+
if execute_query:
137+
self.conn.cursor().execute('select 1;')
138138
pid = int(self.notify('foo').communicate()[0])
139139
self.assertEqual(0, len(self.conn.notifies))
140-
self.conn.commit()
140+
operation()
141141
self.assertEqual(1, len(self.conn.notifies))
142142
self.assertEqual(pid, self.conn.notifies[0][0])
143143
self.assertEqual('foo', self.conn.notifies[0][1])
144144

145+
@slow
146+
@skip_if_windows
147+
def test_notifies_received_on_commit(self):
148+
self._test_notifies_received_on_operation(self.conn.commit)
149+
145150
@slow
146151
@skip_if_windows
147152
def test_notifies_received_on_rollback(self):
148-
self.listen('foo')
149-
self.conn.commit()
150-
self.conn.cursor().execute('select 1;')
151-
pid = int(self.notify('foo').communicate()[0])
152-
self.assertEqual(0, len(self.conn.notifies))
153-
self.conn.rollback()
154-
self.assertEqual(1, len(self.conn.notifies))
155-
self.assertEqual(pid, self.conn.notifies[0][0])
156-
self.assertEqual('foo', self.conn.notifies[0][1])
153+
self._test_notifies_received_on_operation(self.conn.rollback)
157154

158155
@slow
159156
@skip_if_windows
160157
def test_notifies_received_on_reset(self):
161-
self.listen('foo')
162-
self.conn.commit()
163-
pid = int(self.notify('foo').communicate()[0])
164-
self.assertEqual(0, len(self.conn.notifies))
165-
self.conn.reset()
166-
self.assertEqual(1, len(self.conn.notifies))
167-
self.assertEqual(pid, self.conn.notifies[0][0])
168-
self.assertEqual('foo', self.conn.notifies[0][1])
158+
self._test_notifies_received_on_operation(self.conn.reset, execute_query=False)
169159

170160
@slow
171161
@skip_if_windows
172162
def test_notifies_received_on_set_session(self):
173-
self.listen('foo')
174-
self.conn.commit()
175-
pid = int(self.notify('foo').communicate()[0])
176-
self.assertEqual(0, len(self.conn.notifies))
177-
self.conn.set_session(autocommit=True, readonly=True)
178-
self.assertEqual(1, len(self.conn.notifies))
179-
self.assertEqual(pid, self.conn.notifies[0][0])
180-
self.assertEqual('foo', self.conn.notifies[0][1])
163+
self._test_notifies_received_on_operation(
164+
partial(self.conn.set_session, autocommit=True, readonly=True),
165+
execute_query=False,
166+
)
181167

182168
@slow
183169
@skip_if_windows
184170
def test_notifies_received_on_set_client_encoding(self):
185-
self.listen('foo')
186-
self.conn.commit()
187-
pid = int(self.notify('foo').communicate()[0])
188-
self.assertEqual(0, len(self.conn.notifies))
189-
self.conn.set_client_encoding(
190-
'LATIN1' if self.conn.encoding != 'LATIN1' else 'UTF8'
171+
self._test_notifies_received_on_operation(
172+
partial(
173+
self.conn.set_client_encoding,
174+
'LATIN1' if self.conn.encoding != 'LATIN1' else 'UTF8'
175+
),
176+
execute_query=False,
191177
)
192-
self.assertEqual(1, len(self.conn.notifies))
193-
self.assertEqual(pid, self.conn.notifies[0][0])
194-
self.assertEqual('foo', self.conn.notifies[0][1])
195178

196179
@slow
197180
def test_notify_object(self):

0 commit comments

Comments
 (0)