Skip to content

Commit 9844c31

Browse files
committed
Fix JSON decoding in AlgodHTTPError (#223)
* Fix JSON decoding in AlgodHTTPError * Add logging around error * Apply same fix to indexer * Fix integration tests
1 parent f0805d6 commit 9844c31

File tree

4 files changed

+6
-5
lines changed

4 files changed

+6
-5
lines changed

algosdk/v2client/algod.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ def algod_request(
8484
code = e.code
8585
e = e.read().decode("utf-8")
8686
try:
87-
raise error.AlgodHTTPError(json.loads(e)["message"], code)
88-
except:
87+
e = json.loads(e)["message"]
88+
finally:
8989
raise error.AlgodHTTPError(e, code)
9090
if response_format == "json":
9191
try:

algosdk/v2client/indexer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ def indexer_request(
7575
except urllib.error.HTTPError as e:
7676
e = e.read().decode("utf-8")
7777
try:
78-
raise error.IndexerHTTPError(json.loads(e)["message"])
79-
except:
78+
e = json.loads(e)["message"]
79+
finally:
8080
raise error.IndexerHTTPError(e)
8181
response_dict = json.loads(resp.read().decode("utf-8"))
8282

test/steps/v2_steps.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def step_impl(context, filename, directory, status):
9797
def validate_error(context, err):
9898
if context.expected_status_code != 200:
9999
if context.expected_status_code == 500:
100-
assert context.expected_mock_response == json.loads(err.args[0])
100+
assert context.expected_mock_response['message'] == err.args[0], (context.expected_mock_response, err.args[0])
101101
else:
102102
raise NotImplementedError(
103103
"test does not know how to validate status code "

test_integration.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -513,6 +513,7 @@ def test_transaction_group(self):
513513
send = self.acl.send_transactions([stxn1])
514514
self.assertEqual(send, txn.get_txid())
515515
except error.AlgodHTTPError as ex:
516+
self.assertNotIn('{"message"', str(ex))
516517
self.assertIn(
517518
"TransactionPool.Remember: transaction groups not supported",
518519
str(ex),

0 commit comments

Comments
 (0)