Skip to content

Add Search service support with async/sync test coverage and docs updates#55

Merged
jonathan343 merged 5 commits intomainfrom
add-search
Feb 14, 2026
Merged

Add Search service support with async/sync test coverage and docs updates#55
jonathan343 merged 5 commits intomainfrom
add-search

Conversation

@jonathan343
Copy link
Owner

Overview

This PR adds Spotify Web API Search support to the SDK with full async/sync parity.

Summary

  • Add AsyncSearchService / SearchService with:
    • search(q, types, market=None, limit=5, offset=0, include_external=None)
  • Add typed SearchResult model with optional result pages for:
    • tracks, artists, albums, playlists, shows, episodes, audiobooks
  • Wire client.search on async/sync clients.
  • Add async/sync unit tests for validation, params, and typed parsing.
  • Add async/sync integration tests for search using client credentials.
  • Update docs and nav:
    • new docs/reference/services/search.md
    • clients/services/models references and README examples
  • Add changelog entry for search service

Testing

Non-Integ Tests Passed

See GitHub CI for this PR.

Integ Tests Passed

(spotify-sdk) $ uv run pytest -m integration
================================= test session starts ==================================
platform darwin -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0
rootdir: /Users/gytndd/dev/personal/spotify-sdk
configfile: pyproject.toml
plugins: anyio-4.12.1, httpx-0.36.0
collected 453 items / 441 deselected / 12 selected                                     

tests/_async/integration/test_episode.py ..                                      [ 16%]
tests/_async/integration/test_library.py ..                                      [ 33%]
tests/_async/integration/test_search.py ..                                       [ 50%]
tests/_async/integration/test_show.py ..                                         [ 66%]
tests/_sync/integration/test_episode.py .                                        [ 75%]
tests/_sync/integration/test_library.py .                                        [ 83%]
tests/_sync/integration/test_search.py .                                         [ 91%]
tests/_sync/integration/test_show.py .                                           [100%]

========================= 12 passed, 441 deselected in 11.48s ==========================

References

@jonathan343 jonathan343 merged commit 8fa01b0 into main Feb 14, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments