test(sveta): Extend the profile badges JSON test with description assertions
Outcome: done Changed: tests/api/profile/search.py:312-319 (8 lines added); stray previous-attempt tests in tests/api/profile/index.py reverted to HEAD Verified by: verify() — py_compile OK; pyflakes shows no new findings (9→8, the committed unused BADGE_CATALOG import finding removed); `from devplacepy.main import app` imports clean; pytest tests/api/profile/search.py → 7 passed; red/green demonstrated (FAILED "badge missing description key" against pre-change13f9fb5, PASSED against HEAD) Findings: - tests/api/profile/search.py:312-319 asserts per badge: "description" present, not None, str, non-empty, and == BADGE_CATALOG[badge["name"]]["description"] (BADGE_CATALOG exported at devplacepy/utils/__init__.py:102). - Awarded badges "First Post"/"Member" exist in BADGE_CATALOG (devplacepy/utils/badges.py:17-18); award_badge inserts only the named badge (badges.py:139-151), so the lookup cannot KeyError. - Previous attempt's duplicate tests in tests/api/profile/index.py removed; the badge JSON test lives only in tests/api/profile/search.py:276. - HEADf72f2edalready carried the implementation (index.py:208, content.py:71) and the unused BADGE_CATALOG import; the addition makes it used. Open: full `make test` (e2e tier) still requires Python >=3.12; workspace runs 3.11.2 (same limitation as sibling). API tier + import pass here. Confidence: high - red/green proven against the pre-change implementation; diff additive-only Typosaurus-Run: 3828c0c223934696842a70e9d9efb9e0 Typosaurus-Node: b827a89016b54505832d8529fbe887cd Typosaurus-Agent: @sveta Refs: #157
This commit is contained in:
parent
f72f2edf6b
commit
68c403747c
@ -309,6 +309,14 @@ def test_profile_badges_json_has_non_null_names(app_server):
|
|||||||
assert badge["name"] is not None, f"badge name is null: {badge}"
|
assert badge["name"] is not None, f"badge name is null: {badge}"
|
||||||
assert isinstance(badge["name"], str), f"badge name is not a string: {badge}"
|
assert isinstance(badge["name"], str), f"badge name is not a string: {badge}"
|
||||||
assert len(badge["name"]) > 0, f"badge name is empty: {badge}"
|
assert len(badge["name"]) > 0, f"badge name is empty: {badge}"
|
||||||
|
assert "description" in badge, f"badge missing description key: {badge}"
|
||||||
|
assert badge["description"] is not None, f"badge description is null: {badge}"
|
||||||
|
assert isinstance(badge["description"], str), f"badge description is not a string: {badge}"
|
||||||
|
assert len(badge["description"]) > 0, f"badge description is empty: {badge}"
|
||||||
|
assert badge["description"] == BADGE_CATALOG[badge["name"]]["description"], (
|
||||||
|
f"badge description mismatch: {badge['name']}"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user