Skip to content

Commit 7e2d00a

Browse files
committed
Assume modern Python when using Queue class
The timeout parameter actually exists since Python 2.3...
1 parent 540cc73 commit 7e2d00a

9 files changed

+78
-205
lines changed

tests/test_persistent_db.py

Lines changed: 15 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,7 @@ def run_queries(i):
7676
db = None
7777
while True:
7878
try:
79-
try:
80-
q = query_queue[i].get(1, 1)
81-
except TypeError:
82-
q = query_queue[i].get(1)
79+
q = query_queue[i].get(timeout=1)
8380
except Empty:
8481
q = None
8582
if not q:
@@ -99,10 +96,7 @@ def run_queries(i):
9996
r = cursor.fetchone()
10097
cursor.close()
10198
r = f'{i}({db._usage}): {r}'
102-
try:
103-
result_queue[i].put(r, 1, 1)
104-
except TypeError:
105-
result_queue[i].put(r, 1)
99+
result_queue[i].put(r, timeout=1)
106100
if db:
107101
db.close()
108102

@@ -112,68 +106,35 @@ def run_queries(i):
112106
threads.append(thread)
113107
thread.start()
114108
for i in range(num_threads):
115-
try:
116-
query_queue[i].put('ping', 1, 1)
117-
except TypeError:
118-
query_queue[i].put('ping', 1)
109+
query_queue[i].put('ping', timeout=1)
119110
for i in range(num_threads):
120-
try:
121-
r = result_queue[i].get(1, 1)
122-
except TypeError:
123-
r = result_queue[i].get(1)
111+
r = result_queue[i].get(timeout=1)
124112
assert r == f'{i}(0): ok - thread alive'
125113
assert threads[i].is_alive()
126114
for i in range(num_threads):
127115
for j in range(i + 1):
128-
try:
129-
query_queue[i].put(f'select test{j}', 1, 1)
130-
r = result_queue[i].get(1, 1)
131-
except TypeError:
132-
query_queue[i].put(f'select test{j}', 1)
133-
r = result_queue[i].get(1)
116+
query_queue[i].put(f'select test{j}', timeout=1)
117+
r = result_queue[i].get(timeout=1)
134118
assert r == f'{i}({j + 1}): test{j}'
135-
try:
136-
query_queue[1].put('select test4', 1, 1)
137-
except TypeError:
138-
query_queue[1].put('select test4', 1)
139-
try:
140-
r = result_queue[1].get(1, 1)
141-
except TypeError:
142-
r = result_queue[1].get(1)
119+
query_queue[1].put('select test4', timeout=1)
120+
r = result_queue[1].get(timeout=1)
143121
assert r == '1(3): test4'
144-
try:
145-
query_queue[1].put('close', 1, 1)
146-
r = result_queue[1].get(1, 1)
147-
except TypeError:
148-
query_queue[1].put('close', 1)
149-
r = result_queue[1].get(1)
122+
query_queue[1].put('close', timeout=1)
123+
r = result_queue[1].get(timeout=1)
150124
assert r == '1(3): ok - connection closed'
151125
for j in range(2):
152-
try:
153-
query_queue[1].put(f'select test{j}', 1, 1)
154-
r = result_queue[1].get(1, 1)
155-
except TypeError:
156-
query_queue[1].put(f'select test{j}', 1)
157-
r = result_queue[1].get(1)
126+
query_queue[1].put(f'select test{j}', timeout=1)
127+
r = result_queue[1].get(timeout=1)
158128
assert r == f'1({j + 1}): test{j}'
159129
for i in range(num_threads):
160130
assert threads[i].is_alive()
161-
try:
162-
query_queue[i].put('ping', 1, 1)
163-
except TypeError:
164-
query_queue[i].put('ping', 1)
131+
query_queue[i].put('ping', timeout=1)
165132
for i in range(num_threads):
166-
try:
167-
r = result_queue[i].get(1, 1)
168-
except TypeError:
169-
r = result_queue[i].get(1)
133+
r = result_queue[i].get(timeout=1)
170134
assert r == f'{i}({i + 1}): ok - thread alive'
171135
assert threads[i].is_alive()
172136
for i in range(num_threads):
173-
try:
174-
query_queue[i].put(None, 1, 1)
175-
except TypeError:
176-
query_queue[i].put(None, 1)
137+
query_queue[i].put(None, timeout=1)
177138

178139

179140
def test_maxusage(dbapi): # noqa: F811

tests/test_persistent_pg.py

Lines changed: 15 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,7 @@ def run_queries(i):
5454
db = None
5555
while True:
5656
try:
57-
try:
58-
q = query_queue[i].get(1, 1)
59-
except TypeError:
60-
q = query_queue[i].get(1)
57+
q = query_queue[i].get(timeout=1)
6158
except Empty:
6259
q = None
6360
if not q:
@@ -74,10 +71,7 @@ def run_queries(i):
7471
else:
7572
r = db.query(q)
7673
r = f'{i}({db._usage}): {r}'
77-
try:
78-
result_queue[i].put(r, 1, 1)
79-
except TypeError:
80-
result_queue[i].put(r, 1)
74+
result_queue[i].put(r, timeout=1)
8175
if db:
8276
db.close()
8377

@@ -87,66 +81,35 @@ def run_queries(i):
8781
threads.append(thread)
8882
thread.start()
8983
for i in range(num_threads):
90-
try:
91-
query_queue[i].put('ping', 1, 1)
92-
except TypeError:
93-
query_queue[i].put('ping', 1)
84+
query_queue[i].put('ping', timeout=1)
9485
for i in range(num_threads):
95-
try:
96-
r = result_queue[i].get(1, 1)
97-
except TypeError:
98-
r = result_queue[i].get(1)
86+
r = result_queue[i].get(timeout=1)
9987
assert r == f'{i}(0): ok - thread alive'
10088
assert threads[i].is_alive()
10189
for i in range(num_threads):
10290
for j in range(i + 1):
103-
try:
104-
query_queue[i].put(f'select test{j}', 1, 1)
105-
r = result_queue[i].get(1, 1)
106-
except TypeError:
107-
query_queue[i].put(f'select test{j}', 1)
108-
r = result_queue[i].get(1)
91+
query_queue[i].put(f'select test{j}', timeout=1)
92+
r = result_queue[i].get(timeout=1)
10993
assert r == f'{i}({j + 1}): test{j}'
110-
try:
111-
query_queue[1].put('select test4', 1, 1)
112-
r = result_queue[1].get(1, 1)
113-
except TypeError:
114-
query_queue[1].put('select test4', 1)
115-
r = result_queue[1].get(1)
94+
query_queue[1].put('select test4', timeout=1)
95+
r = result_queue[1].get(timeout=1)
11696
assert r == '1(3): test4'
117-
try:
118-
query_queue[1].put('close', 1, 1)
119-
r = result_queue[1].get(1, 1)
120-
except TypeError:
121-
query_queue[1].put('close', 1)
122-
r = result_queue[1].get(1)
97+
query_queue[1].put('close', timeout=1)
98+
r = result_queue[1].get(timeout=1)
12399
assert r == '1(3): ok - connection closed'
124100
for j in range(2):
125-
try:
126-
query_queue[1].put(f'select test{j}', 1, 1)
127-
r = result_queue[1].get(1, 1)
128-
except TypeError:
129-
query_queue[1].put(f'select test{j}', 1)
130-
r = result_queue[1].get(1)
101+
query_queue[1].put(f'select test{j}', timeout=1)
102+
r = result_queue[1].get(timeout=1)
131103
assert r == f'1({j + 1}): test{j}'
132104
for i in range(num_threads):
133105
assert threads[i].is_alive()
134-
try:
135-
query_queue[i].put('ping', 1, 1)
136-
except TypeError:
137-
query_queue[i].put('ping', 1)
106+
query_queue[i].put('ping', timeout=1)
138107
for i in range(num_threads):
139-
try:
140-
r = result_queue[i].get(1, 1)
141-
except TypeError:
142-
r = result_queue[i].get(1)
108+
r = result_queue[i].get(timeout=1)
143109
assert r == f'{i}({i + 1}): ok - thread alive'
144110
assert threads[i].is_alive()
145111
for i in range(num_threads):
146-
try:
147-
query_queue[i].put(None, 1, 1)
148-
except TypeError:
149-
query_queue[i].put(None, 1)
112+
query_queue[i].put(None, timeout=1)
150113

151114

152115
def test_maxusage():

tests/test_pooled_db.py

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,34 +1022,20 @@ def test_three_threads_two_connections(dbapi, threadsafety): # noqa: F811
10221022
queue = Queue(3)
10231023

10241024
def connection():
1025-
try:
1026-
queue.put(pool.connection(), 1, 1)
1027-
except Exception:
1028-
queue.put(pool.connection(), 1)
1025+
queue.put(pool.connection(), timeout=1)
10291026

10301027
for i in range(3):
10311028
Thread(target=connection).start()
1032-
try:
1033-
db1 = queue.get(1, 1)
1034-
db2 = queue.get(1, 1)
1035-
except TypeError:
1036-
db1 = queue.get(1)
1037-
db2 = queue.get(1)
1029+
db1 = queue.get(timeout=1)
1030+
db2 = queue.get(timeout=1)
10381031
assert db1 != db2
10391032
db1_con = db1._con
10401033
db2_con = db2._con
10411034
assert db1_con != db2_con
1042-
try:
1043-
with pytest.raises(Empty):
1044-
queue.get(1, 0.1)
1045-
except TypeError:
1046-
with pytest.raises(Empty):
1047-
queue.get(0)
1035+
with pytest.raises(Empty):
1036+
queue.get(timeout=0.1)
10481037
del db1
1049-
try:
1050-
db1 = queue.get(1, 1)
1051-
except TypeError:
1052-
db1 = queue.get(1)
1038+
db1 = queue.get(timeout=1)
10531039
assert db1 != db2
10541040
assert db1._con != db2._con
10551041
assert db1._con == db1_con
@@ -1061,17 +1047,10 @@ def connection():
10611047
db2_con = db2._con
10621048
assert db1_con != db2_con
10631049
Thread(target=connection).start()
1064-
try:
1065-
with pytest.raises(Empty):
1066-
queue.get(1, 0.1)
1067-
except TypeError:
1068-
with pytest.raises(Empty):
1069-
queue.get(0)
1050+
with pytest.raises(Empty):
1051+
queue.get(timeout=0.1)
10701052
del db1
1071-
try:
1072-
db1 = queue.get(1, 1)
1073-
except TypeError:
1074-
db1 = queue.get(1)
1053+
db1 = queue.get(timeout=1)
10751054
assert db1 != db2
10761055
assert db1._con != db2._con
10771056
assert db1._con == db1_con

tests/test_pooled_pg.py

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,15 @@ def test_close_connection():
101101
db = pool.connection()
102102
assert pool._cache.qsize() == 1
103103
assert pool._cache.get(0) == db_con
104+
assert db
105+
del db
104106

105107

106108
def test_min_max_cached():
107109
pool = PooledPg(3)
108110
assert hasattr(pool, '_cache')
109111
assert pool._cache.qsize() == 3
110-
cache = [pool.connection() for i in range(3)]
112+
cache = [pool.connection() for _i in range(3)]
111113
assert pool._cache.qsize() == 0
112114
for i in range(3):
113115
cache.pop().close()
@@ -121,7 +123,7 @@ def test_min_max_cached():
121123
pool = PooledPg(3, 4)
122124
assert hasattr(pool, '_cache')
123125
assert pool._cache.qsize() == 3
124-
cache = [pool.connection() for i in range(3)]
126+
cache = [pool.connection() for _i in range(3)]
125127
assert pool._cache.qsize() == 0
126128
for i in range(3):
127129
cache.pop().close()
@@ -135,15 +137,15 @@ def test_min_max_cached():
135137
pool = PooledPg(3, 2)
136138
assert hasattr(pool, '_cache')
137139
assert pool._cache.qsize() == 3
138-
cache = [pool.connection() for i in range(4)]
140+
cache = [pool.connection() for _i in range(4)]
139141
assert pool._cache.qsize() == 0
140142
for i in range(4):
141143
cache.pop().close()
142144
assert pool._cache.qsize() == 3
143145
pool = PooledPg(2, 5)
144146
assert hasattr(pool, '_cache')
145147
assert pool._cache.qsize() == 2
146-
cache = [pool.connection() for i in range(10)]
148+
cache = [pool.connection() for _i in range(10)]
147149
assert pool._cache.qsize() == 0
148150
for i in range(10):
149151
cache.pop().close()
@@ -153,7 +155,7 @@ def test_min_max_cached():
153155
def test_max_connections():
154156
pool = PooledPg(1, 2, 3)
155157
assert pool._cache.qsize() == 1
156-
cache = [pool.connection() for i in range(3)]
158+
cache = [pool.connection() for _i in range(3)]
157159
assert pool._cache.qsize() == 0
158160
with pytest.raises(TooManyConnections):
159161
pool.connection()
@@ -164,7 +166,9 @@ def test_max_connections():
164166
assert pool._cache.qsize() == 0
165167
with pytest.raises(TooManyConnections):
166168
pool.connection()
169+
assert db
167170
del db
171+
assert cache
168172
del cache
169173
pool = PooledPg(1, 2, 1)
170174
assert pool._cache.qsize() == 1
@@ -176,7 +180,7 @@ def test_max_connections():
176180
pool.connection()
177181
pool = PooledPg(3, 2, 1, False)
178182
assert pool._cache.qsize() == 3
179-
cache = [pool.connection() for i in range(3)]
183+
cache = [pool.connection() for _i in range(3)]
180184
assert len(cache) == 3
181185
assert pool._cache.qsize() == 0
182186
with pytest.raises(TooManyConnections):
@@ -204,6 +208,7 @@ def connection():
204208
db = pool.connection()
205209
assert pool._cache.qsize() == 0
206210
assert session == ['thread']
211+
assert db
207212
del db
208213

209214

@@ -236,34 +241,20 @@ def test_three_threads_two_connections():
236241
queue = Queue(3)
237242

238243
def connection():
239-
try:
240-
queue.put(pool.connection(), 1, 1)
241-
except TypeError:
242-
queue.put(pool.connection(), 1)
244+
queue.put(pool.connection(), timeout=1)
243245

244246
for i in range(3):
245247
Thread(target=connection).start()
246-
try:
247-
db1 = queue.get(1, 1)
248-
db2 = queue.get(1, 1)
249-
except TypeError:
250-
db1 = queue.get(1)
251-
db2 = queue.get(1)
248+
db1 = queue.get(timeout=1)
249+
db2 = queue.get(timeout=1)
252250
db1_con = db1._con
253251
db2_con = db2._con
254252
assert db1 != db2
255253
assert db1_con != db2_con
256-
try:
257-
with pytest.raises(Empty):
258-
queue.get(1, 0.1)
259-
except TypeError:
260-
with pytest.raises(Empty):
261-
queue.get(0)
254+
with pytest.raises(Empty):
255+
queue.get(timeout=0.1)
262256
del db1
263-
try:
264-
db1 = queue.get(1, 1)
265-
except TypeError:
266-
db1 = queue.get(1)
257+
db1 = queue.get(timeout=1)
267258
assert db1 != db2
268259
assert db1._con != db2._con
269260
assert db1._con == db1_con

0 commit comments

Comments
 (0)