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()
|
||||||
|
|
@ -17,6 +17,4 @@ def on_startup():
|
||||||
router = APIRouter()
|
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())
|
|
||||||
Binary file not shown.
|
|
@ -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
|
||||||
|
|
|
||||||
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.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
|
||||||
Loading…
Add table
Reference in a new issue