• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vintasoftware / nextjs-fastapi-template / 12381527513

17 Dec 2024 09:13PM UTC coverage: 98.756% (+1.0%) from 97.803%
12381527513

Pull #43

github

andersonresende
Added database connection tests
Pull Request #43: Email tests

78 of 82 branches covered (95.12%)

Branch coverage included in aggregate %.

113 of 114 new or added lines in 5 files covered. (99.12%)

1 existing line in 1 file now uncovered.

1827 of 1847 relevant lines covered (98.92%)

6.1 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

66.67
/fastapi_backend/app/routes/items.py
1
from uuid import UUID
1✔
2

3
from fastapi import APIRouter, Depends, HTTPException
1✔
4
from sqlalchemy.ext.asyncio import AsyncSession
1✔
5
from sqlalchemy.future import select
1✔
6

7
from app.database import User, get_async_session
1✔
8
from app.models import Item
1✔
9
from app.schemas import ItemRead, ItemCreate
1✔
10
from app.users import current_active_user
1✔
11

12
router = APIRouter(tags=["item"])
1✔
13

14

15
@router.get("/", response_model=list[ItemRead])
1✔
16
async def read_item(
1✔
17
    db: AsyncSession = Depends(get_async_session),
18
    user: User = Depends(current_active_user),
19
):
20
    result = await db.execute(select(Item).filter(Item.user_id == user.id))
1✔
21
    items = result.scalars().all()
×
NEW
22
    return [ItemRead.model_validate(item) for item in items]
×
23

24

25
@router.post("/", response_model=ItemRead)
1✔
26
async def create_item(
1✔
27
    item: ItemCreate,
28
    db: AsyncSession = Depends(get_async_session),
29
    user: User = Depends(current_active_user),
30
):
31
    db_item = Item(**item.model_dump(), user_id=user.id)
1✔
32
    db.add(db_item)
1✔
33
    await db.commit()
1✔
34
    await db.refresh(db_item)
×
35
    return db_item
×
36

37

38
@router.delete("/{item_id}")
1✔
39
async def delete_item(
1✔
40
    item_id: UUID,
41
    db: AsyncSession = Depends(get_async_session),
42
    user: User = Depends(current_active_user),
43
):
44
    result = await db.execute(
1✔
45
        select(Item).filter(Item.id == item_id, Item.user_id == user.id)
46
    )
47
    item = result.scalars().first()
×
48

49
    if not item:
×
50
        raise HTTPException(status_code=404, detail="Item not found or not authorized")
×
51

52
    await db.delete(item)
×
53
    await db.commit()
×
54

55
    return {"message": "Item successfully deleted"}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc