@@ -45,7 +45,6 @@ def test_validate_message_for_publishing(connection: Connection) -> None:
4545
4646
4747def test_publish_queue (connection : Connection ) -> None :
48-
4948 queue_name = "test-queue"
5049 management = connection .management ()
5150
@@ -77,7 +76,6 @@ def test_publish_queue(connection: Connection) -> None:
7776
7877
7978def test_publish_per_message (connection : Connection ) -> None :
80-
8179 queue_name = "test-queue-1"
8280 queue_name_2 = "test-queue-2"
8381 management = connection .management ()
@@ -123,7 +121,6 @@ def test_publish_per_message(connection: Connection) -> None:
123121
124122
125123def test_publish_ssl (connection_ssl : Connection ) -> None :
126-
127124 queue_name = "test-queue"
128125 management = connection_ssl .management ()
129126
@@ -148,7 +145,6 @@ def test_publish_ssl(connection_ssl: Connection) -> None:
148145
149146
150147def test_publish_to_invalid_destination (connection : Connection ) -> None :
151-
152148 queue_name = "test-queue"
153149
154150 raised = False
@@ -169,7 +165,6 @@ def test_publish_to_invalid_destination(connection: Connection) -> None:
169165
170166
171167def test_publish_per_message_to_invalid_destination (connection : Connection ) -> None :
172-
173168 queue_name = "test-queue-1"
174169 raised = False
175170
@@ -193,7 +188,6 @@ def test_publish_per_message_to_invalid_destination(connection: Connection) -> N
193188
194189
195190def test_publish_per_message_both_address (connection : Connection ) -> None :
196-
197191 queue_name = "test-queue-1"
198192 raised = False
199193
@@ -223,7 +217,6 @@ def test_publish_per_message_both_address(connection: Connection) -> None:
223217
224218
225219def test_publish_exchange (connection : Connection ) -> None :
226-
227220 exchange_name = "test-exchange"
228221 queue_name = "test-queue"
229222 management = connection .management ()
@@ -342,7 +335,6 @@ def test_disconnection_reconnection() -> None:
342335
343336
344337def test_queue_info_for_stream_with_validations (connection : Connection ) -> None :
345-
346338 stream_name = "test_stream_info_with_validation"
347339 messages_to_send = 200
348340
@@ -361,7 +353,6 @@ def test_queue_info_for_stream_with_validations(connection: Connection) -> None:
361353
362354
363355def test_publish_per_message_exchange (connection : Connection ) -> None :
364-
365356 exchange_name = "test-exchange-per-message"
366357 queue_name = "test-queue-per-message"
367358 management = connection .management ()
@@ -407,7 +398,6 @@ def test_publish_per_message_exchange(connection: Connection) -> None:
407398
408399
409400def test_multiple_publishers (environment : Environment ) -> None :
410-
411401 stream_name = "test_multiple_publisher_1"
412402 stream_name_2 = "test_multiple_publisher_2"
413403 connection = environment .connection ()
@@ -456,3 +446,41 @@ def test_multiple_publishers(environment: Environment) -> None:
456446 management .delete_queue (stream_name_2 )
457447
458448 management .close ()
449+
450+
451+ def test_durable_message (connection : Connection ) -> None :
452+ queue_name = "test_durable_message"
453+
454+ management = connection .management ()
455+ management .declare_queue (QuorumQueueSpecification (name = queue_name ))
456+ destination = AddressHelper .queue_address (queue_name )
457+ publisher = connection .publisher (destination )
458+ # message should be durable by default
459+ status = publisher .publish (
460+ Message (
461+ body = Converter .string_to_bytes ("durable" ),
462+ )
463+ )
464+
465+ assert status .remote_state == OutcomeState .ACCEPTED
466+ # message should be not durable by setting the durable to False by the user
467+
468+ m = Message (
469+ body = Converter .string_to_bytes ("not durable" ),
470+ durable = False ,
471+ )
472+ status = publisher .publish (m )
473+
474+ assert status .remote_state == OutcomeState .ACCEPTED
475+
476+ consumer = connection .consumer (destination )
477+ should_be_durable = consumer .consume ()
478+ assert should_be_durable .durable is True
479+ consumer .close ()
480+ # it does not work due of https://github.com/rabbitmq/rabbitmq-amqp-python-client/issues/83
481+ # should_be_not_durable = consumer.consume()
482+ # assert should_be_not_durable.durable is False
483+ # message_count = management.purge_queue(queue_name)
484+ management .purge_queue (queue_name )
485+ # assert message_count == 0
486+ management .delete_queue (queue_name )
0 commit comments