"""Tests for project specific exceptions.""" import json from typing import Any, Callable import pytest from vectororder import exceptions from vectororder.constants import error @pytest.mark.parametrize( "exc_cls", (exceptions.RequestError,), ) def test_request_error_string(exc_cls: Callable[..., Any]) -> None: """Check request error str() return value.""" obj = exc_cls("foobar") assert str(obj) == "foobar" @pytest.mark.parametrize( "exc_cls, error_code", ((exceptions.RequestError, error.ERROR_CODE_BAD_REQUEST),), ) def test_request_error_flask_response( exc_cls: Callable[..., Any], error_code: int ) -> None: """Check request error flask response.""" obj = exc_cls("foobar") response = obj.make_flask_response() assert response.status_code == 400 data = json.loads(response.data.decode()) assert data["message"] == "foobar" assert data["code"] == error_code