File tree Expand file tree Collapse file tree 3 files changed +41
-2
lines changed
rabbitmq_amqp_python_client Expand file tree Collapse file tree 3 files changed +41
-2
lines changed Original file line number Diff line number Diff line change 1212 StreamOptions ,
1313)
1414from .environment import Environment
15- from .exceptions import ArgumentOutOfRangeException
15+ from .exceptions import (
16+ ArgumentOutOfRangeException ,
17+ ValidationCodeException ,
18+ )
1619from .management import Management
1720from .publisher import Publisher
1821from .qpid .proton ._data import symbol # noqa: E402
6265 "AddressHelper" ,
6366 "AMQPMessagingHandler" ,
6467 "ArgumentOutOfRangeException" ,
68+ "ValidationCodeException" ,
6569 "SslConfigurationContext" ,
6670 "ClientCert" ,
6771 "ConnectionClosed" ,
Original file line number Diff line number Diff line change 22from typing import Optional
33
44from .address_helper import validate_address
5- from .exceptions import ArgumentOutOfRangeException
5+ from .exceptions import (
6+ ArgumentOutOfRangeException ,
7+ ValidationCodeException ,
8+ )
69from .options import SenderOptionUnseattle
710from .qpid .proton ._delivery import Delivery
811from .qpid .proton ._message import Message
@@ -27,6 +30,11 @@ def _open(self) -> None:
2730 self ._sender = self ._create_sender (self ._addr )
2831
2932 def publish (self , message : Message ) -> Delivery :
33+ if (self ._addr != "" ) and (message .address is not None ):
34+ raise ValidationCodeException (
35+ "address specified in both message and publisher"
36+ )
37+
3038 if self ._addr != "" :
3139 if self ._sender is not None :
3240 return self ._sender .send (message )
Original file line number Diff line number Diff line change 1010 OutcomeState ,
1111 QuorumQueueSpecification ,
1212 StreamSpecification ,
13+ ValidationCodeException ,
1314)
1415
1516from .http_requests import delete_all_connections
@@ -160,6 +161,32 @@ def test_publish_per_message_to_invalid_destination(connection: Connection) -> N
160161 assert raised is True
161162
162163
164+ def test_publish_per_message_both_address (connection : Connection ) -> None :
165+
166+ queue_name = "test-queue-1"
167+ raised = False
168+
169+ management = connection .management ()
170+ management .declare_queue (QuorumQueueSpecification (name = queue_name ))
171+
172+ message = Message (body = "test" )
173+ message = AddressHelper .message_to_address_helper (message , "/queues/" + queue_name )
174+ publisher = connection .publisher ("/queues/" + queue_name )
175+
176+ try :
177+ publisher .publish (message )
178+ except ValidationCodeException :
179+ raised = True
180+
181+ if publisher is not None :
182+ publisher .close ()
183+
184+ management .delete_queue (queue_name )
185+ management .close ()
186+
187+ assert raised is True
188+
189+
163190def test_publish_exchange (connection : Connection ) -> None :
164191
165192 exchange_name = "test-exchange"
You can’t perform that action at this time.
0 commit comments