diff --git a/ocpp/messages.py b/ocpp/messages.py index ac70419df..8ef07f595 100644 --- a/ocpp/messages.py +++ b/ocpp/messages.py @@ -15,7 +15,6 @@ from ocpp.exceptions import ( FormatViolationError, - NotImplementedError, OCPPError, PropertyConstraintViolationError, ProtocolError, @@ -230,10 +229,14 @@ def _validate_payload(message: Union[Call, CallResult], ocpp_version: str) -> No validator = get_validator( message.message_type_id, message.action, ocpp_version ) - except (OSError, json.JSONDecodeError): - raise NotImplementedError( - details={"cause": f"Failed to validate action: {message.action}"} - ) + except OSError as e: + raise ValidationError( + f"JSON validation schema not found for action: {message.action}" + ) from e + except json.JSONDecodeError as e: + raise ValidationError( + f"Error in decoding JSON validation schema for action: {message.action}" + ) from e try: validator.validate(message.payload) diff --git a/tests/test_messages.py b/tests/test_messages.py index 0ada09e00..a82641fe3 100644 --- a/tests/test_messages.py +++ b/tests/test_messages.py @@ -10,7 +10,6 @@ import ocpp from ocpp.exceptions import ( FormatViolationError, - NotImplementedError, PropertyConstraintViolationError, ProtocolError, TypeConstraintViolationError, @@ -258,7 +257,7 @@ def test_validate_payload_with_non_existing_schema(): payload={"invalid_key": True}, ) - with pytest.raises(NotImplementedError): + with pytest.raises(ValidationError): _validate_payload(message, ocpp_version="1.6")