diff --git a/classquiz/__init__.py b/classquiz/__init__.py index 9c2f0f2..87d04d7 100644 --- a/classquiz/__init__.py +++ b/classquiz/__init__.py @@ -6,7 +6,7 @@ from starlette.middleware.sessions import SessionMiddleware from classquiz.config import settings, meilisearch from classquiz.db import database -from classquiz.routers import users, quiz, utils, stats, storage, search +from classquiz.routers import users, quiz, utils, stats, storage, search, testing_routes from classquiz.socket_server import sio settings = settings() @@ -50,4 +50,5 @@ app.include_router(utils.router, tags=["utils"], prefix="/api/v1/utils") app.include_router(stats.router, tags=["stats"], prefix="/api/v1/stats") app.include_router(storage.router, tags=["storage"], prefix="/api/v1/storage") app.include_router(search.router, tags=["search"], prefix="/api/v1/search") +app.include_router(testing_routes.router, tags=["internal", "testing"], prefix="/api/v1/internal/testing") app.mount("/", ASGIApp(sio)) diff --git a/classquiz/routers/testing_routes.py b/classquiz/routers/testing_routes.py new file mode 100644 index 0000000..be11eba --- /dev/null +++ b/classquiz/routers/testing_routes.py @@ -0,0 +1,13 @@ +from fastapi import APIRouter +from classquiz.db.models import User +from classquiz.config import settings + +settings = settings() + +router = APIRouter() + + +@router.get("/user/{email}") +async def get_user_by_email(email: str, secret_key: str) -> User: + if secret_key == settings.secret_key: + return await User.objects.filter(email=email).get() diff --git a/classquiz/tests/test_server.py b/classquiz/tests/test_server.py index 6af31e2..ad17509 100644 --- a/classquiz/tests/test_server.py +++ b/classquiz/tests/test_server.py @@ -55,10 +55,10 @@ class TestUsers: "/api/v1/users/token/cookie", data={"username": test_user_email, "password": test_user_password} ) assert resp.status_code == 401 - user = await models.User.objects.filter(email=test_user_email).get() + user = test_client.get(f"/api/v1/internal/testing/user/{test_user_email}?secret_key={settings().secret_key}") assert (test_client.get("/api/v1/users/verify/dasadsasdadsasdsaddassad")).status_code == 404 - test_client.get(f"/api/v1/users/verify/{user.verify_key}") + test_client.get(f"/api/v1/users/verify/{user.json()['verify_key']}") resp = test_client.post( "/api/v1/users/token/cookie", data={"username": test_user_email, "password": test_user_password} )