fixes for starting to test

This commit is contained in:
ebby 2026-09-12 15:19:57 +03:00
parent 29b9dd9b84
commit b5aa03eb95
12 changed files with 57 additions and 13 deletions

View file

@ -1,5 +1,5 @@
[tool.pyrefly]
project-includes = [
"./**/*.py",
"./**/**/*.py",
]

View file

@ -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)

View file

@ -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")

View file

@ -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

View 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

View file

@ -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