초기 커밋

This commit is contained in:
2026-03-01 07:44:19 +09:00
commit 09359f30be
146 changed files with 6120 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
from __future__ import annotations
import pytest
from httpx import AsyncClient
from sqlalchemy.ext.asyncio import AsyncSession
from app.core.security import hash_password
from app.models.mariadb.user import User, UserProfile
@pytest.mark.asyncio
async def test_register(client: AsyncClient) -> None:
response = await client.post(
"/api/v1/auth/register",
json={"email": "test@example.com", "password": "password123", "full_name": "Test User"},
)
assert response.status_code == 201
data = response.json()
assert "access_token" in data
assert "refresh_token" in data
assert data["token_type"] == "bearer"
@pytest.mark.asyncio
async def test_register_duplicate_email(client: AsyncClient) -> None:
await client.post(
"/api/v1/auth/register",
json={"email": "dup@example.com", "password": "pass123"},
)
response = await client.post(
"/api/v1/auth/register",
json={"email": "dup@example.com", "password": "pass456"},
)
assert response.status_code == 409
@pytest.mark.asyncio
async def test_login(client: AsyncClient, db_session: AsyncSession) -> None:
user = User(email="login@example.com", hashed_password=hash_password("pass123"))
db_session.add(user)
await db_session.flush()
profile = UserProfile(user_id=user.id, full_name="Login User")
db_session.add(profile)
await db_session.commit()
response = await client.post(
"/api/v1/auth/login",
json={"email": "login@example.com", "password": "pass123"},
)
assert response.status_code == 200
data = response.json()
assert "access_token" in data
@pytest.mark.asyncio
async def test_login_wrong_password(client: AsyncClient, db_session: AsyncSession) -> None:
user = User(email="wrong@example.com", hashed_password=hash_password("correct"))
db_session.add(user)
await db_session.flush()
profile = UserProfile(user_id=user.id)
db_session.add(profile)
await db_session.commit()
response = await client.post(
"/api/v1/auth/login",
json={"email": "wrong@example.com", "password": "incorrect"},
)
assert response.status_code == 401