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 datetime import datetime
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")
def factory(self,
id: uuid.UUID = uuid.uuid7(),
@classmethod
def factory(cls,
id: uuid.UUID | None = None,
email: str = "Email@Test.mail",
name: str = "TestName",
user_code: str = "WYZZ",
subscription: bool = False,
) -> User:
self.id=id
self.email=email
self.name=name
self.user_code=user_code
self.subscription=subscription
return self
) -> "User":
return cls(
id=id or uuid.uuid7(),
email=email,
name=name,
user_code=user_code,
subscription=subscription,
)
class NewUser(UserBase):
email: str
name: str
subscription: bool
def factory(self,
@classmethod
def factory(cls,
email: str = "Email@Test.mail",
name: str = "TestName",
subscription: bool = False
) -> NewUser:
self.email = email
self.name = name
self.subscription = subscription
return self
) -> "NewUser":
return cls(
email = email,
name = name,
subscription = subscription
)

View file

@ -1,6 +1,6 @@
from starlette.status import HTTP_400_BAD_REQUEST,HTTP_401_UNAUTHORIZED
from fastapi import Form
from sqlmodel import select
from starlette.status import HTTP_400_BAD_REQUEST
from fastapi import HTTPException
from sqlalchemy.exc import IntegrityError
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
if not user:
raise HTTPException()
raise HTTPException(HTTP_401_UNAUTHORIZED)
return "token"

View file

@ -48,7 +48,7 @@ def test_register_user_saved(session:Session, client: TestClient):
assert db_user.subscription == True
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")
session.add(user)
@ -57,9 +57,9 @@ def test_email_not_unique_returns_400(session: Session, client: TestClient):
assert response.status_code == 400
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.commit()
response = client.post(url="/users/", json=new_user.model_dump())