From f7ed87823afb2871d8f11e615d96693db3a6c2b8 Mon Sep 17 00:00:00 2001 From: Ephraim Anierobi Date: Wed, 7 Jun 2023 19:51:30 +0100 Subject: [PATCH] Fix typing for POST user endpoint (#31767) * Fix typing for POST user endpoint This should raise exception not return it. * fixup! Fix typing for POST user endpoint --- airflow/api_connexion/endpoints/user_endpoint.py | 2 +- .../api_connexion/endpoints/test_user_endpoint.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/airflow/api_connexion/endpoints/user_endpoint.py b/airflow/api_connexion/endpoints/user_endpoint.py index 506e11e00612c..a9482701a48fa 100644 --- a/airflow/api_connexion/endpoints/user_endpoint.py +++ b/airflow/api_connexion/endpoints/user_endpoint.py @@ -119,7 +119,7 @@ def post_user() -> APIResponse: user = security_manager.add_user(role=roles_to_add, **data) if not user: detail = f"Failed to add user `{username}`." - return Unknown(detail=detail) + raise Unknown(detail=detail) return user_schema.dump(user) diff --git a/tests/api_connexion/endpoints/test_user_endpoint.py b/tests/api_connexion/endpoints/test_user_endpoint.py index c56c989b34146..a84b7f1087afc 100644 --- a/tests/api_connexion/endpoints/test_user_endpoint.py +++ b/tests/api_connexion/endpoints/test_user_endpoint.py @@ -525,6 +525,20 @@ def test_invalid_payload(self, autoclean_user_payload, payload_converter, error_ "type": EXCEPTIONS_LINK_MAP[400], } + def test_internal_server_error(self, autoclean_user_payload): + with unittest.mock.patch.object(self.app.appbuilder.sm, "add_user", return_value=None): + response = self.client.post( + "/api/v1/users", + json=autoclean_user_payload, + environ_overrides={"REMOTE_USER": "test"}, + ) + assert response.json == { + "detail": "Failed to add user `example_user`.", + "status": 500, + "title": "Internal Server Error", + "type": EXCEPTIONS_LINK_MAP[500], + } + class TestPatchUser(TestUserEndpoint): @pytest.mark.usefixtures("autoclean_admin_user")