diff --git a/neuro-cli/src/neuro_cli/main.py b/neuro-cli/src/neuro_cli/main.py index 3ba815ec3..ba37a7b8d 100644 --- a/neuro-cli/src/neuro_cli/main.py +++ b/neuro-cli/src/neuro_cli/main.py @@ -591,7 +591,7 @@ def main(args: Optional[List[str]] = None) -> None: log.exception(f"Application error ({_err_to_str(error)})") sys.exit(EX_SOFTWARE) - except neuro_sdk.ServerNotAvailable as error: + except neuro_sdk.BadGateway as error: log.exception(f"Application error ({_err_to_str(error)})") sys.exit(EX_PLATFORMERROR) diff --git a/neuro-sdk/src/neuro_sdk/__init__.py b/neuro-sdk/src/neuro_sdk/__init__.py index 4aa232a56..ae0cf100e 100644 --- a/neuro-sdk/src/neuro_sdk/__init__.py +++ b/neuro-sdk/src/neuro_sdk/__init__.py @@ -102,6 +102,7 @@ AuthenticationError, AuthError, AuthorizationError, + BadGateway, ClientError, ConfigError, IllegalArgumentError, @@ -165,6 +166,7 @@ "AuthError", "AuthenticationError", "AuthorizationError", + "BadGateway", "BlobCommonPrefix", "BlobObject", "Bucket", diff --git a/neuro-sdk/src/neuro_sdk/_core.py b/neuro-sdk/src/neuro_sdk/_core.py index 779bd5520..c16364cf2 100644 --- a/neuro-sdk/src/neuro_sdk/_core.py +++ b/neuro-sdk/src/neuro_sdk/_core.py @@ -27,6 +27,7 @@ from ._errors import ( AuthenticationError, AuthorizationError, + BadGateway, ClientError, IllegalArgumentError, ResourceNotFound, @@ -77,7 +78,8 @@ def __init__( 403: AuthorizationError, 404: ResourceNotFound, 405: ClientError, - 502: ServerNotAvailable, + 502: BadGateway, + 503: ServerNotAvailable, } self._prev_cookie: Optional[Morsel[str]] = None diff --git a/neuro-sdk/src/neuro_sdk/_errors.py b/neuro-sdk/src/neuro_sdk/_errors.py index 514b0827a..4675ed3d8 100644 --- a/neuro-sdk/src/neuro_sdk/_errors.py +++ b/neuro-sdk/src/neuro_sdk/_errors.py @@ -41,6 +41,11 @@ class ServerNotAvailable(ValueError): pass +@rewrite_module +class BadGateway(ValueError): + pass + + @rewrite_module class ConfigLoadException(Exception): pass diff --git a/neuro-sdk/tests/test_core.py b/neuro-sdk/tests/test_core.py index 3517a08d8..2d3d31d39 100644 --- a/neuro-sdk/tests/test_core.py +++ b/neuro-sdk/tests/test_core.py @@ -10,7 +10,7 @@ from aiohttp import web from yarl import URL -from neuro_sdk import IllegalArgumentError, ServerNotAvailable +from neuro_sdk import BadGateway, IllegalArgumentError from neuro_sdk._core import ( _Core, _ensure_schema, @@ -125,7 +125,7 @@ async def handler(request: web.Request) -> web.Response: async with api_factory(srv.make_url("/")) as api: url = srv.make_url("test") - with pytest.raises(ServerNotAvailable, match="^502: Bad Gateway$"): + with pytest.raises(BadGateway, match="^502: Bad Gateway$"): async with api.request(method="GET", url=url, auth="auth") as resp: assert resp.status == 200