ComfyUI/tests-unit/assets_test
Matt Miller 58df1a3564 feat: implement remaining listAssets contract fields (display_name, hash filter, include_public)
Bring GET /api/assets into param-for-param parity with the projected
openapi.yaml listAssets contract for the three remaining fields:

- Add display_name to the Asset response schema (nullable, mirrors name)
  and populate it from ref.name in _build_asset_response, covering list,
  get, create, update, and upload responses uniformly.
- Add the hash query param to ListAssetsQuery (named hash per the spec,
  not asset_hash) with before-validation strip/lower normalization, and
  thread it through list_assets_page -> list_references_page, filtering
  both the page and count statements on Asset.hash for consistency.
- Accept include_public (bool, default true) for contract parity; it is
  inert in core (no public asset pool) and intentionally not passed to
  the service layer.

Cursor pagination and size optionality are untouched.

Add integration tests covering display_name mirroring, exact hash match,
unknown-hash empty page, and include_public acceptance.
2026-06-30 02:22:06 -07:00
..
queries revert(assets): drop job_ids filter from GET /api/assets (#14408) 2026-06-10 19:23:01 -07:00
services feat(assets): cursor-based pagination on GET /api/assets (#14014) 2026-06-09 21:14:03 -07:00
conftest.py fix(assets): remove unused delete_content param from deleteAsset (#14241) 2026-06-09 21:52:14 -07:00
helpers.py Emit hash alongside asset_hash on all Asset responses (#13739) 2026-05-25 11:21:35 -07:00
test_assets_missing_sync.py Emit hash alongside asset_hash on all Asset responses (#13739) 2026-05-25 11:21:35 -07:00
test_crud.py fix(assets): remove unused delete_content param from deleteAsset (#14241) 2026-06-09 21:52:14 -07:00
test_downloads.py fix(assets): remove unused delete_content param from deleteAsset (#14241) 2026-06-09 21:52:14 -07:00
test_file_utils.py refactor(assets): modular architecture + async two-phase scanner & background seeder (#12621) 2026-03-07 20:37:25 -05:00
test_list_cursor.py feat(assets): cursor-based pagination on GET /api/assets (#14014) 2026-06-09 21:14:03 -07:00
test_list_filter.py feat: implement remaining listAssets contract fields (display_name, hash filter, include_public) 2026-06-30 02:22:06 -07:00
test_metadata_filters.py Assets Part 2 - add more endpoints (#12125) 2026-01-31 02:22:05 -05:00
test_prompt_id_enforcement.py revert(assets): drop job_ids filter from GET /api/assets (#14408) 2026-06-10 19:23:01 -07:00
test_prune_orphaned_assets.py refactor(assets): modular architecture + async two-phase scanner & background seeder (#12621) 2026-03-07 20:37:25 -05:00
test_sync_references.py chore(assets): drop vestigial tags.tag_type column (#14248) 2026-06-09 21:07:10 -07:00
test_tags_api.py fix(assets): remove unused delete_content param from deleteAsset (#14241) 2026-06-09 21:52:14 -07:00
test_uploads.py Emit hash alongside asset_hash on all Asset responses (#13739) 2026-05-25 11:21:35 -07:00