feat: improve app ui and project metadata
This commit is contained in:
@@ -9,6 +9,7 @@ from __future__ import annotations
|
||||
import uuid
|
||||
from collections.abc import AsyncIterator
|
||||
from contextlib import asynccontextmanager
|
||||
from datetime import UTC, datetime
|
||||
from typing import Any
|
||||
|
||||
from pydantic import BaseModel
|
||||
@@ -41,6 +42,7 @@ class FakeProjectRepo:
|
||||
|
||||
def __init__(self) -> None:
|
||||
self.rows: dict[uuid.UUID, tuple[uuid.UUID, ProjectView]] = {}
|
||||
self.now = datetime(2026, 6, 28, tzinfo=UTC)
|
||||
|
||||
async def create(self, owner_id: uuid.UUID, data: ProjectCreate) -> ProjectView:
|
||||
pid = uuid.uuid4()
|
||||
@@ -53,6 +55,7 @@ class FakeProjectRepo:
|
||||
theme=data.theme,
|
||||
selling_points=list(data.selling_points),
|
||||
structure=data.structure,
|
||||
updated_at=self.now,
|
||||
)
|
||||
self.rows[pid] = (owner_id, view)
|
||||
return view
|
||||
|
||||
@@ -158,8 +158,11 @@ async def test_list_projects() -> None:
|
||||
await client.post("/projects", json={"title": "乙"})
|
||||
resp = await client.get("/projects")
|
||||
assert resp.status_code == 200
|
||||
titles = {p["title"] for p in resp.json()["projects"]}
|
||||
projects = resp.json()["projects"]
|
||||
titles = {p["title"] for p in projects}
|
||||
assert titles == {"甲", "乙"}
|
||||
assert all("updated_at" in p for p in projects)
|
||||
assert all(p["pending_review_count"] == 0 for p in projects)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@@ -169,7 +172,10 @@ async def test_get_project_detail() -> None:
|
||||
created = (await client.post("/projects", json={"title": "详情"})).json()
|
||||
resp = await client.get(f"/projects/{created['id']}")
|
||||
assert resp.status_code == 200
|
||||
assert resp.json()["title"] == "详情"
|
||||
body = resp.json()
|
||||
assert body["title"] == "详情"
|
||||
assert "updated_at" in body
|
||||
assert body["pending_review_count"] == 0
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
||||
Reference in New Issue
Block a user