1
1
from rabbitmq_amqp_python_client import (
2
2
BindingSpecification ,
3
+ ClassicQueueSpecification ,
3
4
Connection ,
4
5
ExchangeSpecification ,
5
- QueueSpecification ,
6
6
QueueType ,
7
+ QuorumQueueSpecification ,
8
+ StreamSpecification ,
7
9
)
8
10
from rabbitmq_amqp_python_client .exceptions import (
9
11
ValidationCodeException ,
@@ -35,9 +37,7 @@ def test_declare_purge_delete_queue() -> None:
35
37
queue_name = "my_queue"
36
38
management = connection .management ()
37
39
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 ))
41
41
42
42
assert queue_info .name == queue_name
43
43
@@ -59,9 +59,7 @@ def test_bind_exchange_to_queue() -> None:
59
59
60
60
management .declare_exchange (ExchangeSpecification (name = exchange_name , arguments = {}))
61
61
62
- management .declare_queue (
63
- QueueSpecification (name = queue_name , queue_type = QueueType .quorum )
64
- )
62
+ management .declare_queue (QuorumQueueSpecification (name = queue_name ))
65
63
66
64
binding_exchange_queue_path = management .bind (
67
65
BindingSpecification (
@@ -98,9 +96,8 @@ def test_queue_info_with_validations() -> None:
98
96
queue_name = "test_queue_info_with_validation"
99
97
management = connection .management ()
100
98
101
- queue_specification = QueueSpecification (
99
+ queue_specification = QuorumQueueSpecification (
102
100
name = queue_name ,
103
- queue_type = QueueType .quorum ,
104
101
)
105
102
management .declare_queue (queue_specification )
106
103
@@ -122,16 +119,15 @@ def test_queue_precondition_fail() -> None:
122
119
queue_name = "test-queue_precondition_fail"
123
120
management = connection .management ()
124
121
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
127
124
)
128
125
management .declare_queue (queue_specification )
129
126
130
127
management .declare_queue (queue_specification )
131
128
132
- queue_specification = QueueSpecification (
129
+ queue_specification = QuorumQueueSpecification (
133
130
name = queue_name ,
134
- queue_type = QueueType .quorum ,
135
131
is_auto_delete = True ,
136
132
)
137
133
@@ -152,7 +148,7 @@ def test_declare_classic_queue() -> None:
152
148
queue_name = "test-declare_classic_queue"
153
149
management = connection .management ()
154
150
155
- queue_specification = QueueSpecification (
151
+ queue_specification = QuorumQueueSpecification (
156
152
name = queue_name ,
157
153
queue_type = QueueType .classic ,
158
154
is_auto_delete = False ,
@@ -165,14 +161,14 @@ def test_declare_classic_queue() -> None:
165
161
management .delete_queue (queue_name )
166
162
167
163
168
- def test_declare_queue_with_args () -> None :
164
+ def test_declare_classic_queue_with_args () -> None :
169
165
connection = Connection ("amqp://guest:guest@localhost:5672/" )
170
166
connection .dial ()
171
167
172
168
queue_name = "test-queue_with_args"
173
169
management = connection .management ()
174
170
175
- queue_specification = QueueSpecification (
171
+ queue_specification = ClassicQueueSpecification (
176
172
name = queue_name ,
177
173
queue_type = QueueType .classic ,
178
174
is_auto_delete = False ,
@@ -201,3 +197,36 @@ def test_declare_queue_with_args() -> None:
201
197
)
202
198
203
199
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