fixed tests

This commit is contained in:
ebby 2026-09-12 21:27:01 +03:00
parent 58e67fd956
commit 4acbb84c05
8 changed files with 32 additions and 18 deletions

View file

@ -0,0 +1,4 @@
import string
import random
def generate_user_code() -> str:
return ''.join(random.choices(string.ascii_letters, k=4)).upper()

View file

@ -18,5 +18,3 @@ router = APIRouter()
app.include_router(users.router) app.include_router(users.router)
app.include_router(comments.router) app.include_router(comments.router)
print(SQLModel.metadata.tables.keys())

View file

@ -1,3 +1,5 @@
from backend.internal.user_code_gen import generate_user_code
from dataclasses import dataclass
import uuid import uuid
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlmodel import Field from sqlmodel import Field
@ -14,10 +16,11 @@ class User(UserBase, table=True):
id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True) id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True)
email: str = Field(unique=True) email: str = Field(unique=True)
name: str = Field(unique=True) name: str = Field(unique=True)
user_code: str = Field(default="1234",unique=True) # TODO: create Generator user_code: str = Field(default_factory=generate_user_code,unique=True)
subscription: bool = Field() subscription: bool = Field()
comments: list["Comment"] = Relationship(back_populates="user") comments: list["Comment"] = Relationship(back_populates="user")
@dataclass
class NewUser(UserBase): class NewUser(UserBase):
email: str email: str
name: str name: str

View file

@ -1,3 +1,5 @@
from backend.models.user import NewUser
from sqlmodel import select
from backend.models.user import User from backend.models.user import User
from backend.internal.database import get_session from backend.internal.database import get_session
from sqlmodel import Session from sqlmodel import Session
@ -30,11 +32,7 @@ def client_fixture(session: Session):
yield client yield client
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_register_user_saved(session:Session, client: TestClient):
def test_register_user_works(client: TestClient):
print(SQLModel.metadata.tables.keys())
new_user = { new_user = {
"email": "Test@Test.test", "email": "Test@Test.test",
"name": "Test1", "name": "Test1",
@ -43,15 +41,26 @@ def test_register_user_works(client: TestClient):
response = client.post(url="/users/", json=new_user) response = client.post(url="/users/", json=new_user)
assert response.status_code == 200 assert response.status_code == 200
def test_email_not_unique(session: Session, client: TestClient): db_user = session.exec(select(User).where(User.email == "Test@Test.test")).first()
new_user = { assert db_user
"email": "Test@Test.test", assert db_user.email == "Test@Test.test"
"name": "Test1", assert db_user.name == "Test1"
"subscription": True assert db_user.subscription == True
}
user = User.model_validate(new_user) def test_email_not_unique_returns_400(session: Session, client: TestClient):
new_user = NewUser(email="Not@Unique.de",name="Tim", subscription=True)
user = User.model_validate(new_user.model_copy(update={'name':'Different'}))
session.add(user) session.add(user)
session.commit() session.commit()
response = client.post(url="/users/", json=new_user) response = client.post(url="/users/", json=new_user.model_dump())
assert response.status_code == 400
def test_name_not_unique_returns_400(session: Session, client: TestClient):
new_user = NewUser(email="Absolutly@Unique.de",name="Chiara", subscription=True)
user = User.model_validate(new_user.model_copy(update={'email':'Different@Different.de'}))
session.add(user)
session.commit()
response = client.post(url="/users/", json=new_user.model_dump())
assert response.status_code == 400 assert response.status_code == 400