fixed factories

This commit is contained in:
ebby 2026-09-25 17:02:37 +02:00
parent 0049defe8a
commit 93de81cf86
17 changed files with 25 additions and 20 deletions

View file

@ -1,3 +1,4 @@
from sqlmodel._compat import ConfigDict
from uuid import uuid7 from uuid import uuid7
from datetime import datetime from datetime import datetime
from backend.internal.user_code_gen import generate_user_code from backend.internal.user_code_gen import generate_user_code
@ -23,31 +24,35 @@ class User(UserBase, table=True):
comments: list["Comment"] = Relationship(back_populates="user") comments: list["Comment"] = Relationship(back_populates="user")
def factory(self, @classmethod
id: uuid.UUID = uuid.uuid7(), def factory(cls,
id: uuid.UUID | None = None,
email: str = "Email@Test.mail", email: str = "Email@Test.mail",
name: str = "TestName", name: str = "TestName",
user_code: str = "WYZZ", user_code: str = "WYZZ",
subscription: bool = False, subscription: bool = False,
) -> User: ) -> "User":
self.id=id return cls(
self.email=email id=id or uuid.uuid7(),
self.name=name email=email,
self.user_code=user_code name=name,
self.subscription=subscription user_code=user_code,
return self subscription=subscription,
)
class NewUser(UserBase): class NewUser(UserBase):
email: str email: str
name: str name: str
subscription: bool subscription: bool
def factory(self, @classmethod
def factory(cls,
email: str = "Email@Test.mail", email: str = "Email@Test.mail",
name: str = "TestName", name: str = "TestName",
subscription: bool = False subscription: bool = False
) -> NewUser: ) -> "NewUser":
self.email = email return cls(
self.name = name email = email,
self.subscription = subscription name = name,
return self subscription = subscription
)

View file

@ -1,6 +1,6 @@
from starlette.status import HTTP_400_BAD_REQUEST,HTTP_401_UNAUTHORIZED
from fastapi import Form from fastapi import Form
from sqlmodel import select from sqlmodel import select
from starlette.status import HTTP_400_BAD_REQUEST
from fastapi import HTTPException from fastapi import HTTPException
from sqlalchemy.exc import IntegrityError from sqlalchemy.exc import IntegrityError
from backend.models.user import User from backend.models.user import User
@ -34,7 +34,7 @@ def login(user_code: str = Form(), session: Session = Depends(get_session)) -> s
user = session.exec(select(User).where(User.user_code == user_code)).one user = session.exec(select(User).where(User.user_code == user_code)).one
if not user: if not user:
raise HTTPException() raise HTTPException(HTTP_401_UNAUTHORIZED)
return "token" return "token"

View file

@ -48,7 +48,7 @@ def test_register_user_saved(session:Session, client: TestClient):
assert db_user.subscription == True assert db_user.subscription == True
def test_email_not_unique_returns_400(session: Session, client: TestClient): def test_email_not_unique_returns_400(session: Session, client: TestClient):
new_user = NewUser(email="NotUnique",name="Müller", subscription=True) # TODO: durch factory ersetzen new_user = NewUser.factory(email="NotUnique")
user = User().factory(email="NotUnique") user = User().factory(email="NotUnique")
session.add(user) session.add(user)
@ -57,9 +57,9 @@ def test_email_not_unique_returns_400(session: Session, client: TestClient):
assert response.status_code == 400 assert response.status_code == 400
def test_name_not_unique_returns_400(session: Session, client: TestClient): def test_name_not_unique_returns_400(session: Session, client: TestClient):
new_user = NewUser(email="wewqe@2ewew",name="Chiara", subscription=True) # TODO: durch factory ersetzen new_user = NewUser.factory(email="other@other")
user = User().factory(name="Chiara") user = User().factory()
session.add(user) session.add(user)
session.commit() session.commit()
response = client.post(url="/users/", json=new_user.model_dump()) response = client.post(url="/users/", json=new_user.model_dump())