Skip to content

Commit 20fccbf

Browse files
committed
Add unitesting
1 parent 8064b3e commit 20fccbf

27 files changed

Lines changed: 368 additions & 56 deletions

app/__init__.py

Whitespace-only changes.

app/config/__init__.py

Whitespace-only changes.

app/config/settings.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
settings = {
2+
"SECRET_KEY" : "d86a65c213bf07380a7ed1b7c521d04eaa3838410a119a9302a54f095cb68b67","ALGORITHM" :
3+
"HS256","ACCESS_TOKEN_EXPIRE_MINUTES" : 30
4+
}

app/models/__init__.py

Whitespace-only changes.

models/core.py renamed to app/models/core.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from sqlalchemy import Column, Integer, String
22

3-
from config.database import Base, engine
3+
from app.config.database import Base, engine
44

55

66
class Item(Base):

app/models/schemas.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
from pydantic import BaseModel
2+
3+
class SimpleUserNameAndPassword(BaseModel):
4+
username: str|None = None
5+
password: str|None = None
6+
7+
class UserCreate(BaseModel):
8+
username: str
9+
password: str
10+
email: str | None = None
11+
12+
class ItemBase(BaseModel):
13+
id: int | None = None
14+
title: str
15+
description: str | None = None
16+
17+
18+
class ItemCreateOrUpdate(ItemBase):
19+
pass
20+
21+
22+
class Item(ItemBase):
23+
id: int
24+
25+
class Config:
26+
from_attributes = True
27+
28+
29+
class Token(BaseModel):
30+
access_token: str
31+
token_type: str
32+
33+
34+
class TokenData(BaseModel):
35+
username: str | None = None
36+
37+
38+
class User(BaseModel):
39+
username: str
40+
email: str | None = None
41+
full_name: str | None = None
42+
disabled: bool | None = None
43+
44+
45+
class UserInDB(User):
46+
hashed_password: str

app/repositories/__init__.py

Whitespace-only changes.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
from sqlalchemy.orm import Session
2+
3+
from app.models import schemas, core
4+
from call_db import get_db
5+
6+
from fastapi import Depends
7+
class ItemRepository:
8+
db: Session
9+
def __init__(self, db: Session ) -> None:
10+
self.db = db
11+
12+
13+
def list(self, skip: int = 0, limit: int = 100)-> list[core.Item]:
14+
return self.db.query(core.Item).offset(skip).limit(limit).all()
15+
16+
def create(self, item: schemas.ItemCreateOrUpdate)-> core.Item:
17+
db_item = core.Item(**item.dict())
18+
self.db.add(db_item)
19+
self.db.commit()
20+
self.db.refresh(db_item)
21+
return db_item
22+
23+
def update(self, id: int, item: schemas.ItemCreateOrUpdate) -> core.Item:
24+
item.id = id
25+
db_item = self.db.query(core.Item).filter(core.Item.id == id).first()
26+
db_item.title = item.title
27+
db_item.description = item.description
28+
29+
30+
self.db.merge(db_item)
31+
self.db.commit()
32+
33+
self.db.commit()
34+
return item
35+
36+
def delete(self, book: core.Item) -> None:
37+
self.db.delete(book)
38+
self.db.commit()
39+
self.db.flush()
40+
## implement update
41+

app/routers/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)