11from rabbitmq_amqp_python_client import (
22 BindingSpecification ,
3+ ClassicQueueSpecification ,
34 Connection ,
45 ExchangeSpecification ,
5- QueueSpecification ,
66 QueueType ,
7+ QuorumQueueSpecification ,
8+ StreamSpecification ,
79)
810from rabbitmq_amqp_python_client .exceptions import (
911 ValidationCodeException ,
@@ -35,9 +37,7 @@ def test_declare_purge_delete_queue() -> None:
3537 queue_name = "my_queue"
3638 management = connection .management ()
3739
38- queue_info = management .declare_queue (
39- QueueSpecification (name = queue_name , queue_type = QueueType .quorum )
40- )
40+ queue_info = management .declare_queue (QuorumQueueSpecification (name = queue_name ))
4141
4242 assert queue_info .name == queue_name
4343
@@ -59,9 +59,7 @@ def test_bind_exchange_to_queue() -> None:
5959
6060 management .declare_exchange (ExchangeSpecification (name = exchange_name , arguments = {}))
6161
62- management .declare_queue (
63- QueueSpecification (name = queue_name , queue_type = QueueType .quorum )
64- )
62+ management .declare_queue (QuorumQueueSpecification (name = queue_name ))
6563
6664 binding_exchange_queue_path = management .bind (
6765 BindingSpecification (
@@ -98,9 +96,8 @@ def test_queue_info_with_validations() -> None:
9896 queue_name = "test_queue_info_with_validation"
9997 management = connection .management ()
10098
101- queue_specification = QueueSpecification (
99+ queue_specification = QuorumQueueSpecification (
102100 name = queue_name ,
103- queue_type = QueueType .quorum ,
104101 )
105102 management .declare_queue (queue_specification )
106103
@@ -122,16 +119,15 @@ def test_queue_precondition_fail() -> None:
122119 queue_name = "test-queue_precondition_fail"
123120 management = connection .management ()
124121
125- queue_specification = QueueSpecification (
126- name = queue_name , queue_type = QueueType . quorum , is_auto_delete = False
122+ queue_specification = QuorumQueueSpecification (
123+ name = queue_name , is_auto_delete = False
127124 )
128125 management .declare_queue (queue_specification )
129126
130127 management .declare_queue (queue_specification )
131128
132- queue_specification = QueueSpecification (
129+ queue_specification = QuorumQueueSpecification (
133130 name = queue_name ,
134- queue_type = QueueType .quorum ,
135131 is_auto_delete = True ,
136132 )
137133
@@ -152,7 +148,7 @@ def test_declare_classic_queue() -> None:
152148 queue_name = "test-declare_classic_queue"
153149 management = connection .management ()
154150
155- queue_specification = QueueSpecification (
151+ queue_specification = QuorumQueueSpecification (
156152 name = queue_name ,
157153 queue_type = QueueType .classic ,
158154 is_auto_delete = False ,
@@ -165,14 +161,14 @@ def test_declare_classic_queue() -> None:
165161 management .delete_queue (queue_name )
166162
167163
168- def test_declare_queue_with_args () -> None :
164+ def test_declare_classic_queue_with_args () -> None :
169165 connection = Connection ("amqp://guest:guest@localhost:5672/" )
170166 connection .dial ()
171167
172168 queue_name = "test-queue_with_args"
173169 management = connection .management ()
174170
175- queue_specification = QueueSpecification (
171+ queue_specification = ClassicQueueSpecification (
176172 name = queue_name ,
177173 queue_type = QueueType .classic ,
178174 is_auto_delete = False ,
@@ -201,3 +197,36 @@ def test_declare_queue_with_args() -> None:
201197 )
202198
203199 management .delete_queue (queue_name )
200+
201+
202+ def test_declare_stream_with_args () -> None :
203+ connection = Connection ("amqp://guest:guest@localhost:5672/" )
204+ connection .dial ()
205+
206+ stream_name = "test-stream_with_args"
207+ management = connection .management ()
208+
209+ stream_specification = StreamSpecification (
210+ name = stream_name ,
211+ max_len_bytes = 1000000000 ,
212+ max_time_retention = 10000000 ,
213+ max_segment_size_in_bytes = 100000000 ,
214+ filter_size = 1000 ,
215+ initial_group_size = 3 ,
216+ leader_locator = "node1" ,
217+ )
218+
219+ stream_info = management .declare_queue (stream_specification )
220+
221+ assert stream_specification .name == stream_info .name
222+ assert stream_specification .max_len_bytes == stream_info .max_len_bytes
223+ assert stream_specification .max_time_retention == stream_info .max_time_retention
224+ assert (
225+ stream_specification .max_segment_size_in_bytes
226+ == stream_info .max_segment_size_in_bytes
227+ )
228+ assert stream_specification .filter_size == stream_info .filter_size
229+ assert stream_specification .initial_group_size == stream_info .initial_group_size
230+ assert stream_specification .leader_locator == stream_info .leader_locator
231+
232+ management .delete_queue (stream_name )
0 commit comments