From ade841a6805abc4d4422bd49f2a639fee9b81e69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Honza=20Kr=C3=A1l?= Date: Wed, 4 Nov 2015 19:21:29 +0100 Subject: [PATCH] Better exception representation --- elasticsearch/exceptions.py | 8 +++++++- test_elasticsearch/test_server/test_helpers.py | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/elasticsearch/exceptions.py b/elasticsearch/exceptions.py index f881fe95..76978a86 100644 --- a/elasticsearch/exceptions.py +++ b/elasticsearch/exceptions.py @@ -49,7 +49,13 @@ class TransportError(ElasticsearchException): return self.args[2] def __str__(self): - return 'TransportError(%s, %r)' % (self.status_code, self.error) + cause = '' + try: + if self.info: + cause = ', %r' % self.info['error']['root_cause'][0]['reason'] + except LookupError: + pass + return 'TransportError(%s, %r%s)' % (self.status_code, self.error, cause) class ConnectionError(TransportError): diff --git a/test_elasticsearch/test_server/test_helpers.py b/test_elasticsearch/test_server/test_helpers.py index 2b2f2b1e..95b29ae1 100644 --- a/test_elasticsearch/test_server/test_helpers.py +++ b/test_elasticsearch/test_server/test_helpers.py @@ -14,7 +14,7 @@ class FailingBulkClient(object): def bulk(self, *args, **kwargs): self._called += 1 if self._called == self._fail_at: - raise TransportError(599, "Error!", "INFO") + raise TransportError(599, "Error!", {}) return self.client.bulk(*args, **kwargs) class TestStreamingBulk(ElasticsearchTestCase):