diff options
Diffstat (limited to 'python')
-rw-r--r-- | python/qpid/messaging/driver.py | 1 | ||||
-rw-r--r-- | python/qpid/tests/messaging/endpoints.py | 7 | ||||
-rw-r--r-- | python/qpid/util.py | 21 |
3 files changed, 22 insertions, 7 deletions
diff --git a/python/qpid/messaging/driver.py b/python/qpid/messaging/driver.py index a3c565f205..15eaf1f9bd 100644 --- a/python/qpid/messaging/driver.py +++ b/python/qpid/messaging/driver.py @@ -31,6 +31,7 @@ from qpid.messaging.exceptions import * from qpid.messaging.message import get_codec, Disposition, Message from qpid.ops import * from qpid.selector import Selector +from qpid.util import URL from qpid.validator import And, Context, List, Map, Types, Values from threading import Condition, Thread diff --git a/python/qpid/tests/messaging/endpoints.py b/python/qpid/tests/messaging/endpoints.py index 52ca9f32be..bc1706806c 100644 --- a/python/qpid/tests/messaging/endpoints.py +++ b/python/qpid/tests/messaging/endpoints.py @@ -39,6 +39,13 @@ class SetupTests(Base): self.conn.open() self.ping(self.conn.session()) + def testOpenReconnectURLs(self): + options = self.connection_options() + options["reconnect_urls"] = [self.broker, self.broker] + self.conn = Connection(self.broker, **options) + self.conn.open() + self.ping(self.conn.session()) + def testConnectError(self): try: # Specifying port 0 yields a bad address on Windows; port 4 is unassigned diff --git a/python/qpid/util.py b/python/qpid/util.py index 3409d777f9..e62bebdf24 100644 --- a/python/qpid/util.py +++ b/python/qpid/util.py @@ -109,14 +109,21 @@ class URL: AMQP = "amqp" def __init__(self, s): - match = URL.RE.match(s) - if match is None: - raise ValueError(s) - self.scheme, self.user, self.password, self.host, port = match.groups() - if port is None: - self.port = None + if isinstance(s, URL): + self.scheme = s.scheme + self.user = s.user + self.password = s.password + self.host = s.host + self.port = s.port else: - self.port = int(port) + match = URL.RE.match(s) + if match is None: + raise ValueError(s) + self.scheme, self.user, self.password, self.host, port = match.groups() + if port is None: + self.port = None + else: + self.port = int(port) def __repr__(self): return "URL(%r)" % str(self) |