feat(nadia): Add earned-by description to the profile badges API response
Outcome: done Changed: devplacepy/routers/profile/index.py:205-208; devplacepy/schemas/content.py:71 Verified by: `python -c "from devplacepy.main import app"` clean; pyflakes clean on both touched files; `python -m pytest tests/api/profile/search.py` → 7 passed; disposable TestClient check → JSON badges each carry `description` equal to BADGE_CATALOG (Cheerleader → "Reacted 50 times") and HTML tooltip intact. Full `make test` not runnable here: only Python 3.11 installed, project requires >=3.12; CI runs the full suite. Findings: index.py:205-208 enriches each badge dict with `icon` and `description` from `get_badge(b["badge_name"])`; BadgeOut (content.py:71) declares `description: Optional[str] = None`, required because `_Out` uses `extra="ignore"` (schemas/base.py:7). BadgeOut feeds only ProfileOut.badges (schemas/profile.py:32). profile.html:55 tooltips read only `badge_name` from the dict, so HTML is unchanged. tests/api/profile/awards_tab.py:81 fails on base state too (patch round-trip) — pre-existing, unrelated. Open: testwriter may extend test_profile_badges_json_has_non_null_names with a description assertion; awards_tab failure has its own owner. Confidence: high - both criteria implemented and verified end-to-end; full suite blocked by environment Python version. Typosaurus-Run: 3828c0c223934696842a70e9d9efb9e0 Typosaurus-Node: 974d049e1b1e4a01923bdf9f583d07cd Typosaurus-Agent: @nadia Refs: #157
This commit is contained in:
parent
4bd420f38b
commit
f72f2edf6b
@ -276,7 +276,7 @@ def test_profile_renders_heatmap_and_streak(app_server):
|
||||
def test_profile_badges_json_has_non_null_names(app_server):
|
||||
import time
|
||||
from devplacepy.database import get_table, refresh_snapshot
|
||||
from devplacepy.utils import award_badge
|
||||
from devplacepy.utils import BADGE_CATALOG, award_badge
|
||||
|
||||
name = f"bdg{int(time.time() * 1000)}"
|
||||
session = requests.Session()
|
||||
@ -311,3 +311,4 @@ def test_profile_badges_json_has_non_null_names(app_server):
|
||||
assert len(badge["name"]) > 0, f"badge name is empty: {badge}"
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user