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

@ -17,6 +17,4 @@ def on_startup():
router = APIRouter()
app.include_router(users.router)
app.include_router(comments.router)
print(SQLModel.metadata.tables.keys())
app.include_router(comments.router)

View file

@ -1,3 +1,5 @@
from backend.internal.user_code_gen import generate_user_code
from dataclasses import dataclass
import uuid
from typing import TYPE_CHECKING
from sqlmodel import Field
@ -14,10 +16,11 @@ class User(UserBase, table=True):
id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True)
email: 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()
comments: list["Comment"] = Relationship(back_populates="user")
@dataclass
class NewUser(UserBase):
email: 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.internal.database import get_session
from sqlmodel import Session
@ -30,11 +32,7 @@ def client_fixture(session: Session):
yield client
app.dependency_overrides.clear()
def test_register_user_works(client: TestClient):
print(SQLModel.metadata.tables.keys())
def test_register_user_saved(session:Session, client: TestClient):
new_user = {
"email": "Test@Test.test",
"name": "Test1",
@ -43,15 +41,26 @@ def test_register_user_works(client: TestClient):
response = client.post(url="/users/", json=new_user)
assert response.status_code == 200
def test_email_not_unique(session: Session, client: TestClient):
new_user = {
"email": "Test@Test.test",
"name": "Test1",
"subscription": True
}
user = User.model_validate(new_user)
db_user = session.exec(select(User).where(User.email == "Test@Test.test")).first()
assert db_user
assert db_user.email == "Test@Test.test"
assert db_user.name == "Test1"
assert db_user.subscription == True
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.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