File tree Expand file tree Collapse file tree 2 files changed +56
-2
lines changed Expand file tree Collapse file tree 2 files changed +56
-2
lines changed Original file line number Diff line number Diff line change 1+ import time
2+
13from rabbitmq_amqp_python_client import (
24 ClientCert ,
35 Connection ,
6+ ConnectionClosed ,
47 SslConfigurationContext ,
8+ StreamSpecification ,
59)
610
11+ from .http_requests import delete_all_connections
12+
713
814def on_disconnected ():
915
@@ -30,3 +36,53 @@ def test_connection_ssl() -> None:
3036 ),
3137 )
3238 connection .dial ()
39+
40+
41+ def test_connection_reconnection () -> None :
42+
43+ reconnected = False
44+ connection = None
45+ disconnected = False
46+
47+ def on_disconnected ():
48+
49+ nonlocal connection
50+
51+ # reconnect
52+ if connection is not None :
53+ connection = Connection ("amqp://guest:guest@localhost:5672/" )
54+ connection .dial ()
55+
56+ nonlocal reconnected
57+ reconnected = True
58+
59+ connection = Connection (
60+ "amqp://guest:guest@localhost:5672/" , on_disconnection_handler = on_disconnected
61+ )
62+ connection .dial ()
63+
64+ # delay
65+ time .sleep (5 )
66+ # simulate a disconnection
67+ delete_all_connections ()
68+ # raise a reconnection
69+ management = connection .management ()
70+ stream_name = "test_stream_info_with_validation"
71+ queue_specification = StreamSpecification (
72+ name = stream_name ,
73+ )
74+
75+ try :
76+ management .declare_queue (queue_specification )
77+ except ConnectionClosed :
78+ disconnected = True
79+
80+ # check that we reconnected
81+ management = connection .management ()
82+ management .declare_queue (queue_specification )
83+ management .delete_queue (stream_name )
84+ management .close ()
85+ connection .close ()
86+
87+ assert disconnected is True
88+ assert reconnected is True
Original file line number Diff line number Diff line change @@ -166,8 +166,6 @@ def test_disconnection_reconnection() -> None:
166166 queue_name = "test-queue"
167167 connection_test = None
168168
169- time .sleep (60 )
170-
171169 def on_disconnected ():
172170
173171 nonlocal publisher
You can’t perform that action at this time.
0 commit comments