From 4fa966c9f7baf77190fe1d16ac31148e0de1d17a Mon Sep 17 00:00:00 2001 From: Jason Carver Date: Wed, 22 Apr 2020 13:56:59 -0700 Subject: [PATCH] Expose ValidationError for backwards compatibility --- eth_keys/exceptions.py | 5 +++++ .../core/test_key_and_signature_datastructures.py | 14 ++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/eth_keys/exceptions.py b/eth_keys/exceptions.py index f25c05d..fb8c75b 100644 --- a/eth_keys/exceptions.py +++ b/eth_keys/exceptions.py @@ -1,2 +1,7 @@ +# This exposes the eth-utils exception for backwards compatibility, +# for any library that catches eth_keys.exceptions.ValidationError +from eth_utils import ValidationError # noqa: F401 + + class BadSignature(Exception): pass diff --git a/tests/core/test_key_and_signature_datastructures.py b/tests/core/test_key_and_signature_datastructures.py index 62f3e39..bfc7dc0 100644 --- a/tests/core/test_key_and_signature_datastructures.py +++ b/tests/core/test_key_and_signature_datastructures.py @@ -15,6 +15,7 @@ from eth_keys import KeyAPI from eth_keys.backends import NativeECCBackend +from eth_keys.exceptions import ValidationError as EthKeysValidationErrorCopy MSG = b'message' @@ -155,12 +156,17 @@ def test_compressed_bytes_conversion(key_api, private_key): assert key_api.PublicKey.from_compressed_bytes(compressed_bytes) == public_key -def test_compressed_bytes_validation(key_api, private_key): +@pytest.mark.parametrize('validation_error', (ValidationError, EthKeysValidationErrorCopy)) +def test_compressed_bytes_validation(key_api, private_key, validation_error): valid_key = private_key.public_key.to_compressed_bytes() - with pytest.raises(ValidationError): + with pytest.raises(validation_error): key_api.PublicKey.from_compressed_bytes(valid_key + b"\x00") - with pytest.raises(ValidationError): + with pytest.raises(validation_error): key_api.PublicKey.from_compressed_bytes(valid_key[:-1]) - with pytest.raises(ValidationError): + with pytest.raises(validation_error): key_api.PublicKey.from_compressed_bytes(b"\x04" + valid_key[1:]) + + +def test_validation_error_is_from_eth_utils(): + assert EthKeysValidationErrorCopy is ValidationError