fixes for starting to test
This commit is contained in:
parent
29b9dd9b84
commit
b5aa03eb95
12 changed files with 57 additions and 13 deletions
|
|
@ -1,5 +1,5 @@
|
|||
[tool.pyrefly]
|
||||
|
||||
project-includes = [
|
||||
"./**/*.py",
|
||||
"./**/**/*.py",
|
||||
]
|
||||
Binary file not shown.
|
|
@ -1,4 +1,4 @@
|
|||
from .routers import subscriptions
|
||||
from .routers import subscriptions, users
|
||||
from backend.internal.database import create_db_and_tables
|
||||
from fastapi import APIRouter
|
||||
from fastapi import FastAPI
|
||||
|
|
@ -16,3 +16,4 @@ def on_startup():
|
|||
router = APIRouter()
|
||||
|
||||
app.include_router(subscriptions.router)
|
||||
app.include_router(users.router)
|
||||
|
|
|
|||
BIN
backend/src/backend/models/__pycache__/comment.cpython-314.pyc
Normal file
BIN
backend/src/backend/models/__pycache__/comment.cpython-314.pyc
Normal file
Binary file not shown.
BIN
backend/src/backend/models/__pycache__/user.cpython-314.pyc
Normal file
BIN
backend/src/backend/models/__pycache__/user.cpython-314.pyc
Normal file
Binary file not shown.
|
|
@ -1,17 +1,20 @@
|
|||
import uuid
|
||||
from typing import TYPE_CHECKING, Optional
|
||||
from sqlmodel import Relationship
|
||||
from ..models.user import User
|
||||
from sqlmodel import DateTime
|
||||
from sqlmodel import Field
|
||||
from sqlmodel import UUID
|
||||
from sqlmodel import SQLModel
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from ..models.user import User
|
||||
|
||||
class CommentBase(SQLModel):
|
||||
pass
|
||||
|
||||
class Comment(CommentBase, table=True):
|
||||
id: UUID | None = Field(default=None, primary_key=True)
|
||||
id: uuid.UUID | None = Field(default_factory=uuid.uuid4, primary_key=True)
|
||||
slug: str = Field(index=True)
|
||||
content: str = Field()
|
||||
date_time: DateTime = Field(default=DateTime())
|
||||
user_id: UUID = Field(foreign_key="user.id")
|
||||
user: User = Relationship(back_populates="comments")
|
||||
user_id: uuid.UUID = Field(foreign_key="user.id")
|
||||
user: Optional["User"] = Relationship(back_populates="comments")
|
||||
|
|
@ -1,17 +1,24 @@
|
|||
from unicodedata import name
|
||||
import uuid
|
||||
from typing import TYPE_CHECKING
|
||||
from sqlmodel import Field
|
||||
from sqlmodel import UUID
|
||||
from sqlmodel import Relationship
|
||||
from ..models.comment import Comment
|
||||
from sqlmodel import SQLModel
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from ..models.comment import Comment
|
||||
|
||||
class UserBase(SQLModel):
|
||||
pass
|
||||
|
||||
class User(UserBase):
|
||||
id: UUID | None = Field(default=None, primary_key=True)
|
||||
id: uuid.UUID | None = Field(default_factory=uuid.uuid4, primary_key=True)
|
||||
email: str = Field(unique=True)
|
||||
name: str = Field(unique=True)
|
||||
user_code: str = Field(unique=True) # TODO: create generation function
|
||||
subscription: bool = Field()
|
||||
comments: list[Comment] = Relationship(back_populates="user")
|
||||
comments: list["Comment"] = Relationship(back_populates="user")
|
||||
|
||||
class RegisterUser(UserBase):
|
||||
email: str
|
||||
name: str
|
||||
subscription: bool
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
BIN
backend/src/backend/routers/__pycache__/users.cpython-314.pyc
Normal file
BIN
backend/src/backend/routers/__pycache__/users.cpython-314.pyc
Normal file
Binary file not shown.
15
backend/src/backend/routers/test_users.py
Normal file
15
backend/src/backend/routers/test_users.py
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
from httpx2 import post
|
||||
from backend.models.user import RegisterUser
|
||||
from backend.main import app
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
client = TestClient(app)
|
||||
|
||||
def test_register_user_works():
|
||||
new_user = {
|
||||
"email": "Test",
|
||||
"name": "Test1",
|
||||
"subscription": True
|
||||
}
|
||||
response = client.post(url="/users/", json=new_user)
|
||||
assert response.status_code == 200
|
||||
|
|
@ -3,5 +3,23 @@
|
|||
# Forgot Code <- email (rate limit)
|
||||
# Delete User <- token
|
||||
# change mail <- token, new mail
|
||||
# subscribe
|
||||
# unsubscribe
|
||||
|
||||
# delete all deactivated users after 48h
|
||||
|
||||
from backend.internal.database import get_session
|
||||
from fastapi import Depends
|
||||
from sqlmodel import Session
|
||||
from fastapi import APIRouter
|
||||
|
||||
router = APIRouter(
|
||||
prefix="/users",
|
||||
tags=["users"],
|
||||
dependencies=[],
|
||||
responses={404: {"description": "Not found"}},
|
||||
)
|
||||
|
||||
@router.post("/")
|
||||
def register_user(session: Session = Depends(get_session)):
|
||||
pass
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue