fixed tests
This commit is contained in:
parent
58e67fd956
commit
4acbb84c05
8 changed files with 32 additions and 18 deletions
Binary file not shown.
Binary file not shown.
4
backend/src/backend/internal/user_code_gen.py
Normal file
4
backend/src/backend/internal/user_code_gen.py
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
import string
|
||||
import random
|
||||
def generate_user_code() -> str:
|
||||
return ''.join(random.choices(string.ascii_letters, k=4)).upper()
|
||||
|
|
@ -18,5 +18,3 @@ router = APIRouter()
|
|||
|
||||
app.include_router(users.router)
|
||||
app.include_router(comments.router)
|
||||
|
||||
print(SQLModel.metadata.tables.keys())
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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
|
||||
Loading…
Add table
Reference in a new issue