@@ -190,19 +190,25 @@ def mock_node_resp(node: ClusterNode, response: Any) -> ClusterNode:
190
190
connection = mock .AsyncMock (spec = Connection )
191
191
connection .is_connected = True
192
192
connection .read_response .return_value = response
193
- while node ._free :
194
- node ._free .pop ()
195
- node ._free .append (connection )
193
+ while True :
194
+ try :
195
+ node ._free .get_nowait ()
196
+ except asyncio .QueueEmpty :
197
+ break
198
+ node ._free .put_nowait (connection )
196
199
return node
197
200
198
201
199
202
def mock_node_resp_exc (node : ClusterNode , exc : Exception ) -> ClusterNode :
200
203
connection = mock .AsyncMock (spec = Connection )
201
204
connection .is_connected = True
202
205
connection .read_response .side_effect = exc
203
- while node ._free :
204
- node ._free .pop ()
205
- node ._free .append (connection )
206
+ while True :
207
+ try :
208
+ node ._free .get_nowait ()
209
+ except asyncio .QueueEmpty :
210
+ break
211
+ node ._free .put_nowait (connection )
206
212
return node
207
213
208
214
@@ -482,10 +488,10 @@ async def test_execute_command_node_flag_primaries(self, r: RedisCluster) -> Non
482
488
mock_all_nodes_resp (r , "PONG" )
483
489
assert await r .ping (target_nodes = RedisCluster .PRIMARIES ) is True
484
490
for primary in primaries :
485
- conn = primary ._free .pop ()
491
+ conn = primary ._free .get_nowait ()
486
492
assert conn .read_response .called is True
487
493
for replica in replicas :
488
- conn = replica ._free .pop ()
494
+ conn = replica ._free .get_nowait ()
489
495
assert conn .read_response .called is not True
490
496
491
497
async def test_execute_command_node_flag_replicas (self , r : RedisCluster ) -> None :
@@ -499,10 +505,10 @@ async def test_execute_command_node_flag_replicas(self, r: RedisCluster) -> None
499
505
mock_all_nodes_resp (r , "PONG" )
500
506
assert await r .ping (target_nodes = RedisCluster .REPLICAS ) is True
501
507
for replica in replicas :
502
- conn = replica ._free .pop ()
508
+ conn = replica ._free .get_nowait ()
503
509
assert conn .read_response .called is True
504
510
for primary in primaries :
505
- conn = primary ._free .pop ()
511
+ conn = primary ._free .get_nowait ()
506
512
assert conn .read_response .called is not True
507
513
508
514
await r .aclose ()
@@ -514,7 +520,7 @@ async def test_execute_command_node_flag_all_nodes(self, r: RedisCluster) -> Non
514
520
mock_all_nodes_resp (r , "PONG" )
515
521
assert await r .ping (target_nodes = RedisCluster .ALL_NODES ) is True
516
522
for node in r .get_nodes ():
517
- conn = node ._free .pop ()
523
+ conn = node ._free .get_nowait ()
518
524
assert conn .read_response .called is True
519
525
520
526
async def test_execute_command_node_flag_random (self , r : RedisCluster ) -> None :
@@ -525,7 +531,7 @@ async def test_execute_command_node_flag_random(self, r: RedisCluster) -> None:
525
531
assert await r .ping (target_nodes = RedisCluster .RANDOM ) is True
526
532
called_count = 0
527
533
for node in r .get_nodes ():
528
- conn = node ._free .pop ()
534
+ conn = node ._free .get_nowait ()
529
535
if conn .read_response .called is True :
530
536
called_count += 1
531
537
assert called_count == 1
@@ -538,7 +544,7 @@ async def test_execute_command_default_node(self, r: RedisCluster) -> None:
538
544
def_node = r .get_default_node ()
539
545
mock_node_resp (def_node , "PONG" )
540
546
assert await r .ping () is True
541
- conn = def_node ._free .pop ()
547
+ conn = def_node ._free .get_nowait ()
542
548
assert conn .read_response .called
543
549
544
550
async def test_ask_redirection (self , r : RedisCluster ) -> None :
@@ -1106,8 +1112,8 @@ async def test_cluster_delslots(self) -> None:
1106
1112
node0 = r .get_node (default_host , 7000 )
1107
1113
node1 = r .get_node (default_host , 7001 )
1108
1114
assert await r .cluster_delslots (0 , 8192 ) == [True , True ]
1109
- assert node0 ._free .pop ().read_response .called
1110
- assert node1 ._free .pop ().read_response .called
1115
+ assert node0 ._free .get_nowait ().read_response .called
1116
+ assert node1 ._free .get_nowait ().read_response .called
1111
1117
1112
1118
await r .aclose ()
1113
1119
@@ -1119,7 +1125,7 @@ async def test_cluster_delslotsrange(self):
1119
1125
node = r .get_random_node ()
1120
1126
await r .cluster_addslots (node , 1 , 2 , 3 , 4 , 5 )
1121
1127
assert await r .cluster_delslotsrange (1 , 5 )
1122
- assert node ._free .pop ().read_response .called
1128
+ assert node ._free .get_nowait ().read_response .called
1123
1129
await r .aclose ()
1124
1130
1125
1131
@skip_if_redis_enterprise ()
@@ -1279,7 +1285,7 @@ async def test_cluster_setslot_stable(self, r: RedisCluster) -> None:
1279
1285
node = r .nodes_manager .get_node_from_slot (12182 )
1280
1286
mock_node_resp (node , "OK" )
1281
1287
assert await r .cluster_setslot_stable (12182 ) is True
1282
- assert node ._free .pop ().read_response .called
1288
+ assert node ._free .get_nowait ().read_response .called
1283
1289
1284
1290
@skip_if_redis_enterprise ()
1285
1291
async def test_cluster_replicas (self , r : RedisCluster ) -> None :
@@ -1328,7 +1334,7 @@ async def test_readonly(self) -> None:
1328
1334
for res in all_replicas_results .values ():
1329
1335
assert res is True
1330
1336
for replica in r .get_replicas ():
1331
- assert replica ._free .pop ().read_response .called
1337
+ assert replica ._free .get_nowait ().read_response .called
1332
1338
1333
1339
await r .aclose ()
1334
1340
@@ -1341,7 +1347,7 @@ async def test_readwrite(self) -> None:
1341
1347
for res in all_replicas_results .values ():
1342
1348
assert res is True
1343
1349
for replica in r .get_replicas ():
1344
- assert replica ._free .pop ().read_response .called
1350
+ assert replica ._free .get_nowait ().read_response .called
1345
1351
1346
1352
await r .aclose ()
1347
1353
@@ -2800,8 +2806,8 @@ async def test_asking_error(self, r: RedisCluster) -> None:
2800
2806
mock_node_resp_exc (first_node , AskError (ask_msg ))
2801
2807
mock_node_resp (ask_node , "MOCK_OK" )
2802
2808
res = await pipe .get (key ).execute ()
2803
- assert first_node ._free .pop ().read_response .await_count
2804
- assert ask_node ._free .pop ().read_response .await_count
2809
+ assert first_node ._free .get_nowait ().read_response .await_count
2810
+ assert ask_node ._free .get_nowait ().read_response .await_count
2805
2811
assert res == ["MOCK_OK" ]
2806
2812
2807
2813
@skip_if_server_version_gte ("7.0.0" )
@@ -2857,7 +2863,7 @@ async def test_readonly_pipeline_from_readonly_client(
2857
2863
executed_on_replica = False
2858
2864
for node in slot_nodes :
2859
2865
if node .server_type == REPLICA :
2860
- if node ._free .pop ().read_response .await_count :
2866
+ if node ._free .get_nowait ().read_response .await_count :
2861
2867
executed_on_replica = True
2862
2868
break
2863
2869
assert executed_on_replica
0 commit comments