diff --git a/nucypher/policy/conditions/_utils.py b/nucypher/policy/conditions/_utils.py index 8531b255d..5eb5ac598 100644 --- a/nucypher/policy/conditions/_utils.py +++ b/nucypher/policy/conditions/_utils.py @@ -133,7 +133,7 @@ def evaluate_conditions( except ReturnValueEvaluationError as e: error = ( f"Unable to evaluate return value: {e}", - HTTPStatus.INTERNAL_SERVER_ERROR, + HTTPStatus.BAD_REQUEST, ) except InvalidCondition as e: error = ( diff --git a/nucypher/policy/conditions/evm.py b/nucypher/policy/conditions/evm.py index 54bdba237..259ae5897 100644 --- a/nucypher/policy/conditions/evm.py +++ b/nucypher/policy/conditions/evm.py @@ -55,7 +55,7 @@ def _resolve_abi( """Resolves the contract an/or function ABI from a standard contract name""" if not (function_abi or standard_contract_type): - raise ReencryptionCondition.InvalidCondition( + raise InvalidCondition( f"Ambiguous ABI - Supply either an ABI or a standard contract type ({STANDARD_ABI_CONTRACT_TYPES})." ) @@ -73,7 +73,7 @@ def _resolve_abi( # Will raise a ValueError if there is not exactly one match. function_abi = w3.eth.contract(abi=contract_abi).get_function_by_name(method).abi except ValueError as e: - raise ReencryptionCondition.InvalidCondition(str(e)) + raise InvalidCondition(str(e)) if not function_abi: raise InvalidCondition(f"No function ABI supplied for '{method}'") diff --git a/tests/unit/conditions/test_condition_validity.py b/tests/unit/conditions/test_condition_validity.py index 23a20e269..e50d575db 100644 --- a/tests/unit/conditions/test_condition_validity.py +++ b/tests/unit/conditions/test_condition_validity.py @@ -100,7 +100,7 @@ def test_invalid_contract_condition(): ) # method not in ABI - with pytest.raises(ReencryptionCondition.InvalidCondition): + with pytest.raises(InvalidCondition): _ = ContractCondition( contract_address="0xaDD9D957170dF6F33982001E4c22eCCdd5539118", method="getPolicy", diff --git a/tests/unit/conditions/test_return_value.py b/tests/unit/conditions/test_return_value.py index d7c90ff95..f3d186a7a 100644 --- a/tests/unit/conditions/test_return_value.py +++ b/tests/unit/conditions/test_return_value.py @@ -20,6 +20,7 @@ import random import pytest +from nucypher.policy.conditions.exceptions import ReturnValueEvaluationError from nucypher.policy.conditions.lingo import ReturnValueTest @@ -28,14 +29,14 @@ def test_return_value_key(): assert test.eval({"james": 1}) assert not test.eval({"james": -1}) - with pytest.raises(KeyError): + with pytest.raises(ReturnValueEvaluationError): test.eval({"bond": 1}) test = ReturnValueTest(comparator=">", value="0", key=4) assert test.eval({4: 1}) assert not test.eval({4: -1}) - with pytest.raises(KeyError): + with pytest.raises(ReturnValueEvaluationError): test.eval({5: 1}) @@ -47,7 +48,7 @@ def test_return_value_index(): test = ReturnValueTest(comparator="==", value='"james"', key=3) assert test.eval([0, 1, 2, '"james"']) - with pytest.raises(IndexError): + with pytest.raises(ReturnValueEvaluationError): test.eval([0, 1, 2])