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]
|
[tool.pyrefly]
|
||||||
|
|
||||||
project-includes = [
|
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 backend.internal.database import create_db_and_tables
|
||||||
from fastapi import APIRouter
|
from fastapi import APIRouter
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
|
@ -16,3 +16,4 @@ def on_startup():
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
app.include_router(subscriptions.router)
|
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 sqlmodel import Relationship
|
||||||
from ..models.user import User
|
|
||||||
from sqlmodel import DateTime
|
from sqlmodel import DateTime
|
||||||
from sqlmodel import Field
|
from sqlmodel import Field
|
||||||
from sqlmodel import UUID
|
|
||||||
from sqlmodel import SQLModel
|
from sqlmodel import SQLModel
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from ..models.user import User
|
||||||
|
|
||||||
class CommentBase(SQLModel):
|
class CommentBase(SQLModel):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class Comment(CommentBase, table=True):
|
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)
|
slug: str = Field(index=True)
|
||||||
content: str = Field()
|
content: str = Field()
|
||||||
date_time: DateTime = Field(default=DateTime())
|
date_time: DateTime = Field(default=DateTime())
|
||||||
user_id: UUID = Field(foreign_key="user.id")
|
user_id: uuid.UUID = Field(foreign_key="user.id")
|
||||||
user: User = Relationship(back_populates="comments")
|
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 Field
|
||||||
from sqlmodel import UUID
|
|
||||||
from sqlmodel import Relationship
|
from sqlmodel import Relationship
|
||||||
from ..models.comment import Comment
|
|
||||||
from sqlmodel import SQLModel
|
from sqlmodel import SQLModel
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from ..models.comment import Comment
|
||||||
|
|
||||||
class UserBase(SQLModel):
|
class UserBase(SQLModel):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class User(UserBase):
|
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)
|
email: str = Field(unique=True)
|
||||||
name: str = Field(unique=True)
|
name: str = Field(unique=True)
|
||||||
user_code: str = Field(unique=True) # TODO: create generation function
|
user_code: str = Field(unique=True) # TODO: create generation function
|
||||||
subscription: bool = Field()
|
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)
|
# Forgot Code <- email (rate limit)
|
||||||
# Delete User <- token
|
# Delete User <- token
|
||||||
# change mail <- token, new mail
|
# change mail <- token, new mail
|
||||||
|
# subscribe
|
||||||
|
# unsubscribe
|
||||||
|
|
||||||
# delete all deactivated users after 48h
|
# 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