@@ -272,3 +272,40 @@ async def test_delete_user(sanic_client, admin_headers) -> None:
272272 for iuser in res .json
273273 ]
274274 assert user not in users_response
275+
276+
277+ @pytest .mark .asyncio
278+ async def test_get_self_user (sanic_client , user_headers , regular_user ) -> None :
279+ _ , response = await sanic_client .get ("/api/data/user" , headers = user_headers )
280+
281+ assert response .status_code == 200 , response .text
282+ assert response .json is not None
283+ user_info = response .json
284+ assert user_info .get ("id" ) == regular_user .id
285+ assert user_info .get ("username" ) == regular_user .namespace .slug
286+ assert user_info .get ("email" ) == regular_user .email
287+ assert user_info .get ("first_name" ) == regular_user .first_name
288+ assert user_info .get ("last_name" ) == regular_user .last_name
289+ assert user_info .get ("is_admin" ) is False
290+
291+
292+ @pytest .mark .asyncio
293+ async def test_get_self_user_as_admin (sanic_client , admin_headers , admin_user ) -> None :
294+ _ , response = await sanic_client .get ("/api/data/user" , headers = admin_headers )
295+
296+ assert response .status_code == 200 , response .text
297+ assert response .json is not None
298+ user_info = response .json
299+ assert user_info .get ("id" ) == admin_user .id
300+ assert user_info .get ("username" ) == admin_user .namespace .slug
301+ assert user_info .get ("email" ) == admin_user .email
302+ assert user_info .get ("first_name" ) == admin_user .first_name
303+ assert user_info .get ("last_name" ) == admin_user .last_name
304+ assert user_info .get ("is_admin" ) is True
305+
306+
307+ @pytest .mark .asyncio
308+ async def test_get_self_user_unauthenticated (sanic_client ) -> None :
309+ _ , response = await sanic_client .get ("/api/data/user" )
310+
311+ assert response .status_code == 401 , response .text
0 commit comments