summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--python/qpid/messaging/endpoints.py24
-rw-r--r--python/qpid/tests/messaging/endpoints.py8
2 files changed, 32 insertions, 0 deletions
diff --git a/python/qpid/messaging/endpoints.py b/python/qpid/messaging/endpoints.py
index e2602bfc15..30165438c0 100644
--- a/python/qpid/messaging/endpoints.py
+++ b/python/qpid/messaging/endpoints.py
@@ -177,6 +177,9 @@ class Connection:
self._condition.gc()
raise self.error
+ def get_error(self):
+ return self.error
+
def _ewait(self, predicate, timeout=None):
result = self._wait(lambda: self.error or predicate(), timeout)
self.check_error()
@@ -513,6 +516,13 @@ class Session:
if self.error:
raise self.error
+ def get_error(self):
+ err = self.connection.get_error()
+ if err:
+ return err
+ else:
+ return self.error
+
def _ewait(self, predicate, timeout=None):
result = self.connection._ewait(lambda: self.error or predicate(), timeout)
self.check_error()
@@ -710,6 +720,13 @@ class Sender:
if self.error:
raise self.error
+ def get_error(self):
+ err = self.session.get_error()
+ if err:
+ return err
+ else:
+ return self.error
+
def _ewait(self, predicate, timeout=None):
result = self.session._ewait(lambda: self.error or predicate(), timeout)
self.check_error()
@@ -853,6 +870,13 @@ class Receiver(object):
if self.error:
raise self.error
+ def get_error(self):
+ err = self.session.get_error()
+ if err:
+ return err
+ else:
+ return self.error
+
def _ewait(self, predicate, timeout=None):
result = self.session._ewait(lambda: self.error or predicate(), timeout)
self.check_error()
diff --git a/python/qpid/tests/messaging/endpoints.py b/python/qpid/tests/messaging/endpoints.py
index 91940a881e..9ccf8ae8e6 100644
--- a/python/qpid/tests/messaging/endpoints.py
+++ b/python/qpid/tests/messaging/endpoints.py
@@ -44,6 +44,14 @@ class SetupTests(Base):
except ConnectError, e:
assert "Connection refused" in str(e)
+ def testGetError(self):
+ self.conn = Connection("localhost:0")
+ try:
+ self.conn.open()
+ assert False, "connect succeeded"
+ except ConnectError, e:
+ assert self.conn.get_error() == e
+
def use_fds(self):
fds = []
try: