38
38
)
39
39
40
40
from ..ssl_utils import get_ssl_filename
41
- from .compat import mock
41
+ from .compat import aclosing , mock
42
42
43
43
pytestmark = pytest .mark .onlycluster
44
44
@@ -270,7 +270,39 @@ async def test_host_port_startup_node(self) -> None:
270
270
cluster = await get_mocked_redis_client (host = default_host , port = default_port )
271
271
assert cluster .get_node (host = default_host , port = default_port ) is not None
272
272
273
- await cluster .close ()
273
+ await cluster .aclose ()
274
+
275
+ async def test_aclosing (self ) -> None :
276
+ cluster = await get_mocked_redis_client (host = default_host , port = default_port )
277
+ called = 1
278
+
279
+ async def mock_aclose (_ ):
280
+ nonlocal called
281
+ called += 1
282
+
283
+ with mock .patch .object (cluster , "aclose" , mock_aclose ):
284
+ async with aclosing (cluster ):
285
+ pass
286
+ assert called == 1
287
+ await cluster .aclose ()
288
+
289
+ async def test_close_is_aclose (self ) -> None :
290
+ """
291
+ Test that it is possible to use host & port arguments as startup node
292
+ args
293
+ """
294
+ cluster = await get_mocked_redis_client (host = default_host , port = default_port )
295
+
296
+ called = 1
297
+
298
+ async def mock_aclose (_ ):
299
+ nonlocal called
300
+ called += 1
301
+
302
+ with mock .patch .object (cluster , "aclose" , mock_aclose ):
303
+ await cluster .close ()
304
+ assert called == 1
305
+ await cluster .aclose ()
274
306
275
307
async def test_startup_nodes (self ) -> None :
276
308
"""
@@ -289,7 +321,7 @@ async def test_startup_nodes(self) -> None:
289
321
and cluster .get_node (host = default_host , port = port_2 ) is not None
290
322
)
291
323
292
- await cluster .close ()
324
+ await cluster .aclose ()
293
325
294
326
startup_node = ClusterNode ("127.0.0.1" , 16379 )
295
327
async with RedisCluster (startup_nodes = [startup_node ], client_name = "test" ) as rc :
@@ -417,7 +449,7 @@ async def read_response_mocked(*args: Any, **kwargs: Any) -> None:
417
449
)
418
450
)
419
451
420
- await rc .close ()
452
+ await rc .aclose ()
421
453
422
454
async def test_execute_command_errors (self , r : RedisCluster ) -> None :
423
455
"""
@@ -461,7 +493,7 @@ async def test_execute_command_node_flag_replicas(self, r: RedisCluster) -> None
461
493
conn = primary ._free .pop ()
462
494
assert conn .read_response .called is not True
463
495
464
- await r .close ()
496
+ await r .aclose ()
465
497
466
498
async def test_execute_command_node_flag_all_nodes (self , r : RedisCluster ) -> None :
467
499
"""
@@ -690,7 +722,7 @@ def execute_command_mock_third(self, *args, **options):
690
722
await read_cluster .get ("foo" )
691
723
mocks ["send_command" ].assert_has_calls ([mock .call ("READONLY" )])
692
724
693
- await read_cluster .close ()
725
+ await read_cluster .aclose ()
694
726
695
727
async def test_keyslot (self , r : RedisCluster ) -> None :
696
728
"""
@@ -762,7 +794,7 @@ def raise_error(target_node, *args, **kwargs):
762
794
await rc .get ("bar" )
763
795
assert execute_command .failed_calls == rc .cluster_error_retry_attempts
764
796
765
- await rc .close ()
797
+ await rc .aclose ()
766
798
767
799
async def test_set_default_node_success (self , r : RedisCluster ) -> None :
768
800
"""
@@ -843,7 +875,7 @@ async def test_can_run_concurrent_commands(self, request: FixtureRequest) -> Non
843
875
* (rc .echo ("i" , target_nodes = RedisCluster .ALL_NODES ) for i in range (100 ))
844
876
)
845
877
)
846
- await rc .close ()
878
+ await rc .aclose ()
847
879
848
880
def test_replace_cluster_node (self , r : RedisCluster ) -> None :
849
881
prev_default_node = r .get_default_node ()
@@ -901,7 +933,7 @@ def address_remap(address):
901
933
assert await r .set ("byte_string" , b"giraffe" )
902
934
assert await r .get ("byte_string" ) == b"giraffe"
903
935
finally :
904
- await r .close ()
936
+ await r .aclose ()
905
937
finally :
906
938
await asyncio .gather (* [p .aclose () for p in proxies ])
907
939
@@ -1002,7 +1034,7 @@ async def test_initialize_before_execute_multi_key_command(
1002
1034
url = request .config .getoption ("--redis-url" )
1003
1035
r = RedisCluster .from_url (url )
1004
1036
assert 0 == await r .exists ("a" , "b" , "c" )
1005
- await r .close ()
1037
+ await r .aclose ()
1006
1038
1007
1039
@skip_if_redis_enterprise ()
1008
1040
async def test_cluster_myid (self , r : RedisCluster ) -> None :
@@ -1065,7 +1097,7 @@ async def test_cluster_delslots(self) -> None:
1065
1097
assert node0 ._free .pop ().read_response .called
1066
1098
assert node1 ._free .pop ().read_response .called
1067
1099
1068
- await r .close ()
1100
+ await r .aclose ()
1069
1101
1070
1102
@skip_if_server_version_lt ("7.0.0" )
1071
1103
@skip_if_redis_enterprise ()
@@ -1076,7 +1108,7 @@ async def test_cluster_delslotsrange(self):
1076
1108
await r .cluster_addslots (node , 1 , 2 , 3 , 4 , 5 )
1077
1109
assert await r .cluster_delslotsrange (1 , 5 )
1078
1110
assert node ._free .pop ().read_response .called
1079
- await r .close ()
1111
+ await r .aclose ()
1080
1112
1081
1113
@skip_if_redis_enterprise ()
1082
1114
async def test_cluster_failover (self , r : RedisCluster ) -> None :
@@ -1286,7 +1318,7 @@ async def test_readonly(self) -> None:
1286
1318
for replica in r .get_replicas ():
1287
1319
assert replica ._free .pop ().read_response .called
1288
1320
1289
- await r .close ()
1321
+ await r .aclose ()
1290
1322
1291
1323
@skip_if_redis_enterprise ()
1292
1324
async def test_readwrite (self ) -> None :
@@ -1299,7 +1331,7 @@ async def test_readwrite(self) -> None:
1299
1331
for replica in r .get_replicas ():
1300
1332
assert replica ._free .pop ().read_response .called
1301
1333
1302
- await r .close ()
1334
+ await r .aclose ()
1303
1335
1304
1336
@skip_if_redis_enterprise ()
1305
1337
async def test_bgsave (self , r : RedisCluster ) -> None :
@@ -1524,7 +1556,7 @@ async def test_client_kill(
1524
1556
]
1525
1557
assert len (clients ) == 1
1526
1558
assert clients [0 ].get ("name" ) == "redis-py-c1"
1527
- await r2 .close ()
1559
+ await r2 .aclose ()
1528
1560
1529
1561
@skip_if_server_version_lt ("2.6.0" )
1530
1562
async def test_cluster_bitop_not_empty_string (self , r : RedisCluster ) -> None :
@@ -2302,7 +2334,7 @@ async def test_acl_log(
2302
2334
2303
2335
await r .acl_deluser (username , target_nodes = "primaries" )
2304
2336
2305
- await user_client .close ()
2337
+ await user_client .aclose ()
2306
2338
2307
2339
2308
2340
class TestNodesManager :
@@ -2359,7 +2391,7 @@ async def test_init_slots_cache_not_all_slots_covered(self) -> None:
2359
2391
cluster_slots = cluster_slots ,
2360
2392
require_full_coverage = True ,
2361
2393
)
2362
- await rc .close ()
2394
+ await rc .aclose ()
2363
2395
assert str (ex .value ).startswith (
2364
2396
"All slots are not covered after query all startup_nodes."
2365
2397
)
@@ -2385,7 +2417,7 @@ async def test_init_slots_cache_not_require_full_coverage_success(self) -> None:
2385
2417
2386
2418
assert 5460 not in rc .nodes_manager .slots_cache
2387
2419
2388
- await rc .close ()
2420
+ await rc .aclose ()
2389
2421
2390
2422
async def test_init_slots_cache (self ) -> None :
2391
2423
"""
@@ -2416,7 +2448,7 @@ async def test_init_slots_cache(self) -> None:
2416
2448
2417
2449
assert len (n_manager .nodes_cache ) == 6
2418
2450
2419
- await rc .close ()
2451
+ await rc .aclose ()
2420
2452
2421
2453
async def test_init_slots_cache_cluster_mode_disabled (self ) -> None :
2422
2454
"""
@@ -2427,7 +2459,7 @@ async def test_init_slots_cache_cluster_mode_disabled(self) -> None:
2427
2459
rc = await get_mocked_redis_client (
2428
2460
host = default_host , port = default_port , cluster_enabled = False
2429
2461
)
2430
- await rc .close ()
2462
+ await rc .aclose ()
2431
2463
assert "Cluster mode is not enabled on this node" in str (e .value )
2432
2464
2433
2465
async def test_empty_startup_nodes (self ) -> None :
@@ -2514,7 +2546,7 @@ async def test_cluster_one_instance(self) -> None:
2514
2546
for i in range (0 , REDIS_CLUSTER_HASH_SLOTS ):
2515
2547
assert n .slots_cache [i ] == [n_node ]
2516
2548
2517
- await rc .close ()
2549
+ await rc .aclose ()
2518
2550
2519
2551
async def test_init_with_down_node (self ) -> None :
2520
2552
"""
0 commit comments