diff options
| -rw-r--r-- | python/qpid/messaging/endpoints.py | 24 | ||||
| -rw-r--r-- | python/qpid/tests/messaging/endpoints.py | 8 |
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: |
