mirror of
https://github.com/spotipy-dev/spotipy.git
synced 2026-06-19 09:13:53 +00:00
Update category tests to fix 1 failing and 1 error test results (#886)
* update category tests to fix 1 failing and 1 error test results * update changelog
This commit is contained in:
parent
1265d7b915
commit
6f56504c2c
218
CHANGELOG.md
218
CHANGELOG.md
@ -9,48 +9,55 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Integration tests via GHA (non-user endpoints)
|
- Integration tests via GHA (non-user endpoints)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Incorrect category_id input for test_category
|
||||||
|
- Assertion value for test_categories_limit_low and test_categories_limit_high
|
||||||
|
|
||||||
## [2.21.0] - 2022-09-26
|
## [2.21.0] - 2022-09-26
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Added `market` parameter to `album` and `albums` to address ([#753](https://github.com/plamere/spotipy/issues/753)
|
- Added `market` parameter to `album` and `albums` to address ([#753](https://github.com/plamere/spotipy/issues/753)
|
||||||
* Added 'show_featured_artists.py' to 'examples'.
|
- Added 'show_featured_artists.py' to 'examples'.
|
||||||
* Expanded contribution and license sections of the documentation.
|
- Expanded contribution and license sections of the documentation.
|
||||||
* Added `FlaskSessionCacheHandler`, a cache handler that stores the token info in a flask session.
|
- Added `FlaskSessionCacheHandler`, a cache handler that stores the token info in a flask session.
|
||||||
* Added Python 3.10 in GitHub Actions
|
- Added Python 3.10 in GitHub Actions
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Updated the documentation to specify ISO-639-1 language codes.
|
- Updated the documentation to specify ISO-639-1 language codes.
|
||||||
* Fix `AttributeError` for `text` attribute of the `Response` object
|
- Fix `AttributeError` for `text` attribute of the `Response` object
|
||||||
* Require redis v3 if python2.7 (fixes readthedocs)
|
- Require redis v3 if python2.7 (fixes readthedocs)
|
||||||
|
|
||||||
## [2.20.0] - 2022-06-18
|
## [2.20.0] - 2022-06-18
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
* Added `RedisCacheHandler`, a cache handler that stores the token info in Redis.
|
|
||||||
* Changed URI handling in `client.Spotify._get_id()` to remove qureies if provided by error.
|
- Added `RedisCacheHandler`, a cache handler that stores the token info in Redis.
|
||||||
* Added a new parameter to `RedisCacheHandler` to allow custom keys (instead of the default `token_info` key)
|
- Changed URI handling in `client.Spotify._get_id()` to remove qureies if provided by error.
|
||||||
* Simplify check for existing token in `RedisCacheHandler`
|
- Added a new parameter to `RedisCacheHandler` to allow custom keys (instead of the default `token_info` key)
|
||||||
|
- Simplify check for existing token in `RedisCacheHandler`
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
* Removed Python 3.5 and added Python 3.9 in Github Action
|
|
||||||
|
- Removed Python 3.5 and added Python 3.9 in Github Action
|
||||||
|
|
||||||
## [2.19.0] - 2021-08-12
|
## [2.19.0] - 2021-08-12
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Added `MemoryCacheHandler`, a cache handler that simply stores the token info in memory as an instance attribute of this class.
|
- Added `MemoryCacheHandler`, a cache handler that simply stores the token info in memory as an instance attribute of this class.
|
||||||
* If a network request returns an error status code but the response body cannot be decoded into JSON, then fall back on decoding the body into a string.
|
- If a network request returns an error status code but the response body cannot be decoded into JSON, then fall back on decoding the body into a string.
|
||||||
* Added `DjangoSessionCacheHandler`, a cache handler that stores the token in the session framework provided by Django. Web apps using spotipy with Django can directly use this for cache handling.
|
- Added `DjangoSessionCacheHandler`, a cache handler that stores the token in the session framework provided by Django. Web apps using spotipy with Django can directly use this for cache handling.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Fixed a bug in `CacheFileHandler.__init__`: The documentation says that the username will be retrieved from the environment, but it wasn't.
|
- Fixed a bug in `CacheFileHandler.__init__`: The documentation says that the username will be retrieved from the environment, but it wasn't.
|
||||||
* Fixed a bug in the initializers for the auth managers that produced a spurious warning message if you provide a cache handler and you set a value for the "SPOTIPY_CLIENT_USERNAME" environment variable.
|
- Fixed a bug in the initializers for the auth managers that produced a spurious warning message if you provide a cache handler and you set a value for the "SPOTIPY_CLIENT_USERNAME" environment variable.
|
||||||
* Use generated MIT license and fix license type in `pip show`
|
- Use generated MIT license and fix license type in `pip show`
|
||||||
|
|
||||||
## [2.18.0] - 2021-04-13
|
## [2.18.0] - 2021-04-13
|
||||||
|
|
||||||
@ -59,11 +66,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Enabled using both short and long IDs for playlist_change_details
|
- Enabled using both short and long IDs for playlist_change_details
|
||||||
- Added a cache handler to `SpotifyClientCredentials`
|
- Added a cache handler to `SpotifyClientCredentials`
|
||||||
- Added the following endpoints
|
- Added the following endpoints
|
||||||
* `Spotify.current_user_saved_episodes`
|
- `Spotify.current_user_saved_episodes`
|
||||||
* `Spotify.current_user_saved_episodes_add`
|
- `Spotify.current_user_saved_episodes_add`
|
||||||
* `Spotify.current_user_saved_episodes_delete`
|
- `Spotify.current_user_saved_episodes_delete`
|
||||||
* `Spotify.current_user_saved_episodes_contains`
|
- `Spotify.current_user_saved_episodes_contains`
|
||||||
* `Spotify.available_markets`
|
- `Spotify.available_markets`
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
@ -71,9 +78,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Fixed the bugs in `SpotifyOAuth.refresh_access_token` and `SpotifyPKCE.refresh_access_token` which raised the incorrect exception upon receiving an error response from the server. This addresses #645.
|
- Fixed the bugs in `SpotifyOAuth.refresh_access_token` and `SpotifyPKCE.refresh_access_token` which raised the incorrect exception upon receiving an error response from the server. This addresses #645.
|
||||||
* Fixed a bug in `RequestHandler.do_GET` in which the non-existent `state` attribute of `SpotifyOauthError` is accessed. This bug occurs when the user clicks "cancel" in the permissions dialog that opens in the browser.
|
- Fixed a bug in `RequestHandler.do_GET` in which the non-existent `state` attribute of `SpotifyOauthError` is accessed. This bug occurs when the user clicks "cancel" in the permissions dialog that opens in the browser.
|
||||||
* Cleaned up the documentation for `SpotifyClientCredentials.__init__`, `SpotifyOAuth.__init__`, and `SpotifyPKCE.__init__`.
|
- Cleaned up the documentation for `SpotifyClientCredentials.__init__`, `SpotifyOAuth.__init__`, and `SpotifyPKCE.__init__`.
|
||||||
|
|
||||||
## [2.17.1] - 2021-02-28
|
## [2.17.1] - 2021-02-28
|
||||||
|
|
||||||
@ -144,10 +151,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- (experimental) Support to search multiple/all markets at once.
|
- (experimental) Support to search multiple/all markets at once.
|
||||||
- Support to test whether the current user is following certain
|
- Support to test whether the current user is following certain
|
||||||
users or artists
|
users or artists
|
||||||
- Proper replacements for all deprecated playlist endpoints
|
- Proper replacements for all deprecated playlist endpoints
|
||||||
(See https://developer.spotify.com/community/news/2018/06/12/changes-to-playlist-uris/ and below)
|
(See https://developer.spotify.com/community/news/2018/06/12/changes-to-playlist-uris/ and below)
|
||||||
- Allow for OAuth 2.0 authorization by instructing the user to open the URL in a browser instead of opening the browser.
|
- Allow for OAuth 2.0 authorization by instructing the user to open the URL in a browser instead of opening the browser.
|
||||||
- Reason for 403 error in SpotifyException
|
- Reason for 403 error in SpotifyException
|
||||||
@ -175,264 +182,299 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- `playlist_tracks` in favor of `playlist_items`
|
- `playlist_tracks` in favor of `playlist_items`
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- fixed issue where episode URIs were being converted to track URIs in playlist calls
|
- fixed issue where episode URIs were being converted to track URIs in playlist calls
|
||||||
|
|
||||||
## [2.13.0] - 2020-06-25
|
## [2.13.0] - 2020-06-25
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Added `SpotifyImplicitGrant` as an auth manager option. It provides
|
- Added `SpotifyImplicitGrant` as an auth manager option. It provides
|
||||||
user authentication without a client secret but sacrifices the ability
|
user authentication without a client secret but sacrifices the ability
|
||||||
to refresh the token without user input. (However, read the class
|
to refresh the token without user input. (However, read the class
|
||||||
docstring for security advisory.)
|
docstring for security advisory.)
|
||||||
- Added built-in verification of the `state` query parameter
|
- Added built-in verification of the `state` query parameter
|
||||||
- Added two new attributes: error and error_description to `SpotifyOauthError` exception class to show
|
- Added two new attributes: error and error_description to `SpotifyOauthError` exception class to show
|
||||||
authorization/authentication web api errors details.
|
authorization/authentication web api errors details.
|
||||||
- Added `SpotifyStateError` subclass of `SpotifyOauthError`
|
- Added `SpotifyStateError` subclass of `SpotifyOauthError`
|
||||||
- Allow extending `SpotifyClientCredentials` and `SpotifyOAuth`
|
- Allow extending `SpotifyClientCredentials` and `SpotifyOAuth`
|
||||||
- Added the market paramter to `album_tracks`
|
- Added the market paramter to `album_tracks`
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
||||||
- Deprecated `util.prompt_for_user_token` in favor of `spotipy.Spotify(auth_manager=SpotifyOAuth())`
|
- Deprecated `util.prompt_for_user_token` in favor of `spotipy.Spotify(auth_manager=SpotifyOAuth())`
|
||||||
|
|
||||||
## [2.12.0] - 2020-04-26
|
## [2.12.0] - 2020-04-26
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Added a method to update the auth token.
|
- Added a method to update the auth token.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Logging regression due to the addition of `logging.basicConfig()` which was unneeded.
|
- Logging regression due to the addition of `logging.basicConfig()` which was unneeded.
|
||||||
|
|
||||||
## [2.11.2] - 2020-04-19
|
## [2.11.2] - 2020-04-19
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Updated the documentation to give more details on the authorization process and reflect
|
- Updated the documentation to give more details on the authorization process and reflect
|
||||||
2020 Spotify Application jargon and practices.
|
2020 Spotify Application jargon and practices.
|
||||||
|
|
||||||
- The local webserver is only started for localhost redirect_uri which specify a port,
|
- The local webserver is only started for localhost redirect_uri which specify a port,
|
||||||
i.e. it is started for `http://localhost:8080` or `http://127.0.0.1:8080`, not for `http://localhost`.
|
i.e. it is started for `http://localhost:8080` or `http://127.0.0.1:8080`, not for `http://localhost`.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Issue where using `http://localhost` as redirect_uri would cause the authorization process to hang.
|
- Issue where using `http://localhost` as redirect_uri would cause the authorization process to hang.
|
||||||
|
|
||||||
## [2.11.1] - 2020-04-11
|
## [2.11.1] - 2020-04-11
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Fixed miscellaneous issues with parsing of callback URL
|
- Fixed miscellaneous issues with parsing of callback URL
|
||||||
|
|
||||||
## [2.11.0] - 2020-04-11
|
## [2.11.0] - 2020-04-11
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Support for shows/podcasts and episodes
|
- Support for shows/podcasts and episodes
|
||||||
- Added CONTRIBUTING.md
|
- Added CONTRIBUTING.md
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Client retry logic has changed as it now uses urllib3's `Retry` in conjunction with requests `Session`
|
- Client retry logic has changed as it now uses urllib3's `Retry` in conjunction with requests `Session`
|
||||||
- The session is customizable as it allows for:
|
- The session is customizable as it allows for:
|
||||||
- status_forcelist
|
- status_forcelist
|
||||||
- retries
|
- retries
|
||||||
- status_retries
|
- status_retries
|
||||||
- backoff_factor
|
- backoff_factor
|
||||||
- Spin up a local webserver to auto-fill authentication URL
|
- Spin up a local webserver to auto-fill authentication URL
|
||||||
- Use session in SpotifyAuthBase
|
- Use session in SpotifyAuthBase
|
||||||
- Logging used instead of print statements
|
- Logging used instead of print statements
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Close session when Spotipy object is unloaded
|
- Close session when Spotipy object is unloaded
|
||||||
- Propagate refresh token error
|
- Propagate refresh token error
|
||||||
|
|
||||||
## [2.10.0] - 2020-03-18
|
## [2.10.0] - 2020-03-18
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Support for `add_to_queue`
|
- Support for `add_to_queue`
|
||||||
- **Parameters:**
|
- **Parameters:**
|
||||||
- track uri, id, or url
|
- track uri, id, or url
|
||||||
- device id. If None, then the active device is used.
|
- device id. If None, then the active device is used.
|
||||||
- Add CHANGELOG and LICENSE to released package
|
- Add CHANGELOG and LICENSE to released package
|
||||||
|
|
||||||
|
|
||||||
## [2.9.0] - 2020-02-15
|
## [2.9.0] - 2020-02-15
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Support `position_ms` optional parameter in `start_playback`
|
- Support `position_ms` optional parameter in `start_playback`
|
||||||
- Add `requests_timeout` parameter to authentication methods
|
- Add `requests_timeout` parameter to authentication methods
|
||||||
- Make cache optional in `get_access_token`
|
- Make cache optional in `get_access_token`
|
||||||
|
|
||||||
## [2.8.0] - 2020-02-12
|
## [2.8.0] - 2020-02-12
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Support for `playlist_cover_image`
|
- Support for `playlist_cover_image`
|
||||||
- Support `after` and `before` parameter in `current_user_recently_played`
|
- Support `after` and `before` parameter in `current_user_recently_played`
|
||||||
- CI for unit tests
|
- CI for unit tests
|
||||||
- Automatic `token` refresh
|
- Automatic `token` refresh
|
||||||
- `auth_manager` and `oauth_manager` optional parameters added to `Spotify`'s init.
|
- `auth_manager` and `oauth_manager` optional parameters added to `Spotify`'s init.
|
||||||
- Optional `username` parameter to be passed to `SpotifyOAuth`, to infer a `cache_path` automatically
|
- Optional `username` parameter to be passed to `SpotifyOAuth`, to infer a `cache_path` automatically
|
||||||
- Optional `as_dict` parameter to control `SpotifyOAuth`'s `get_access_token` output type. However, this is going to be deprecated in the future, and the method will always return a token string
|
- Optional `as_dict` parameter to control `SpotifyOAuth`'s `get_access_token` output type. However, this is going to be deprecated in the future, and the method will always return a token string
|
||||||
- Optional `show_dialog` parameter to be passed to `SpotifyOAuth`
|
- Optional `show_dialog` parameter to be passed to `SpotifyOAuth`
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Both `SpotifyClientCredentials` and `SpotifyOAuth` inherit from a common `SpotifyAuthBase` which handles common parameters and logics.
|
|
||||||
|
- Both `SpotifyClientCredentials` and `SpotifyOAuth` inherit from a common `SpotifyAuthBase` which handles common parameters and logics.
|
||||||
|
|
||||||
## [2.7.1] - 2020-01-20
|
## [2.7.1] - 2020-01-20
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- PyPi release mistake without pulling last merge first
|
- PyPi release mistake without pulling last merge first
|
||||||
|
|
||||||
## [2.7.0] - 2020-01-20
|
## [2.7.0] - 2020-01-20
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Support for `playlist_tracks`
|
- Support for `playlist_tracks`
|
||||||
- Support for `playlist_upload_cover_image`
|
- Support for `playlist_upload_cover_image`
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- `user_playlist_tracks` doesn't require a user anymore (accepts `None`)
|
- `user_playlist_tracks` doesn't require a user anymore (accepts `None`)
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
||||||
- Deprecated `user_playlist` and `user_playlist_tracks`
|
- Deprecated `user_playlist` and `user_playlist_tracks`
|
||||||
|
|
||||||
## [2.6.3] - 2020-01-16
|
## [2.6.3] - 2020-01-16
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Fixed broken doc in 2.6.2
|
- Fixed broken doc in 2.6.2
|
||||||
|
|
||||||
## [2.6.2] - 2020-01-16
|
## [2.6.2] - 2020-01-16
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Fixed broken examples in README, examples and doc
|
- Fixed broken examples in README, examples and doc
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Allow session keepalive
|
- Allow session keepalive
|
||||||
- Bump requests to 2.20.0
|
- Bump requests to 2.20.0
|
||||||
|
|
||||||
## [2.6.1] - 2020-01-13
|
## [2.6.1] - 2020-01-13
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Fixed inconsistent behaviour with some API methods when
|
|
||||||
|
- Fixed inconsistent behaviour with some API methods when
|
||||||
a full HTTP URL is passed.
|
a full HTTP URL is passed.
|
||||||
- Fixed invalid calls to logging warn method
|
- Fixed invalid calls to logging warn method
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
- `mock` no longer needed for install. Only used in `tox`.
|
|
||||||
|
- `mock` no longer needed for install. Only used in `tox`.
|
||||||
|
|
||||||
## [2.6.0] - 2020-01-12
|
## [2.6.0] - 2020-01-12
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Support for `playlist` to get a playlist without specifying a user
|
|
||||||
- Support for `current_user_saved_albums_delete`
|
- Support for `playlist` to get a playlist without specifying a user
|
||||||
- Support for `current_user_saved_albums_contains`
|
- Support for `current_user_saved_albums_delete`
|
||||||
- Support for `user_unfollow_artists`
|
- Support for `current_user_saved_albums_contains`
|
||||||
- Support for `user_unfollow_users`
|
- Support for `user_unfollow_artists`
|
||||||
- Lint with flake8 using Github action
|
- Support for `user_unfollow_users`
|
||||||
|
- Lint with flake8 using Github action
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Fix typos in doc
|
|
||||||
- Start following [SemVer](https://semver.org) properly
|
- Fix typos in doc
|
||||||
|
- Start following [SemVer](https://semver.org) properly
|
||||||
|
|
||||||
## [2.5.0] - 2020-01-11
|
## [2.5.0] - 2020-01-11
|
||||||
|
|
||||||
Added follow and player endpoints
|
Added follow and player endpoints
|
||||||
|
|
||||||
## [2.4.4] - 2017-01-04
|
## [2.4.4] - 2017-01-04
|
||||||
|
|
||||||
Python 3 fix
|
Python 3 fix
|
||||||
|
|
||||||
## [2.4.3] - 2017-01-02
|
## [2.4.3] - 2017-01-02
|
||||||
|
|
||||||
Fixed proxy issue in standard auth flow
|
Fixed proxy issue in standard auth flow
|
||||||
|
|
||||||
## [2.4.2] - 2017-01-02
|
## [2.4.2] - 2017-01-02
|
||||||
|
|
||||||
Support getting audio features for a single track
|
Support getting audio features for a single track
|
||||||
|
|
||||||
## [2.4.1] - 2017-01-02
|
## [2.4.1] - 2017-01-02
|
||||||
|
|
||||||
Incorporated proxy support
|
Incorporated proxy support
|
||||||
|
|
||||||
## [2.4.0] - 2016-12-31
|
## [2.4.0] - 2016-12-31
|
||||||
|
|
||||||
Incorporated a number of PRs
|
Incorporated a number of PRs
|
||||||
|
|
||||||
## [2.3.8] - 2016-03-31
|
## [2.3.8] - 2016-03-31
|
||||||
|
|
||||||
Added recs, audio features, user top lists
|
Added recs, audio features, user top lists
|
||||||
|
|
||||||
## [2.3.7] - 2015-08-10
|
## [2.3.7] - 2015-08-10
|
||||||
|
|
||||||
Added current_user_followed_artists
|
Added current_user_followed_artists
|
||||||
|
|
||||||
## [2.3.6] - 2015-06-03
|
## [2.3.6] - 2015-06-03
|
||||||
|
|
||||||
Support for offset/limit with album_tracks API
|
Support for offset/limit with album_tracks API
|
||||||
|
|
||||||
## [2.3.5] - 2015-04-28
|
## [2.3.5] - 2015-04-28
|
||||||
|
|
||||||
Fixed bug in auto retry logic
|
Fixed bug in auto retry logic
|
||||||
|
|
||||||
## [2.3.3] - 2015-04-01
|
## [2.3.3] - 2015-04-01
|
||||||
|
|
||||||
Aadded client credential flow
|
Aadded client credential flow
|
||||||
|
|
||||||
## [2.3.2] - 2015-03-31
|
## [2.3.2] - 2015-03-31
|
||||||
|
|
||||||
Added auto retry logic
|
Added auto retry logic
|
||||||
|
|
||||||
## [2.3.0] - 2015-01-05
|
## [2.3.0] - 2015-01-05
|
||||||
|
|
||||||
Added session support added by akx.
|
Added session support added by akx.
|
||||||
|
|
||||||
## [2.2.0] - 2014-11-15
|
## [2.2.0] - 2014-11-15
|
||||||
|
|
||||||
Added support for user_playlist_tracks
|
Added support for user_playlist_tracks
|
||||||
|
|
||||||
## [2.1.0] - 2014-10-25
|
## [2.1.0] - 2014-10-25
|
||||||
|
|
||||||
Added support for new_releases and featured_playlists
|
Added support for new_releases and featured_playlists
|
||||||
|
|
||||||
## [2.0.2] - 2014-08-25
|
## [2.0.2] - 2014-08-25
|
||||||
|
|
||||||
Moved to spotipy at pypi
|
Moved to spotipy at pypi
|
||||||
|
|
||||||
## [1.2.0] - 2014-08-22
|
## [1.2.0] - 2014-08-22
|
||||||
|
|
||||||
Upgraded APIs and docs to make it be a real library
|
Upgraded APIs and docs to make it be a real library
|
||||||
|
|
||||||
## [1.310.0] - 2014-08-20
|
## [1.310.0] - 2014-08-20
|
||||||
|
|
||||||
Added playlist replace and remove methods. Added auth tests. Improved API docs
|
Added playlist replace and remove methods. Added auth tests. Improved API docs
|
||||||
|
|
||||||
## [1.301.0] - 2014-08-19
|
## [1.301.0] - 2014-08-19
|
||||||
|
|
||||||
Upgraded version number to take precedence over previously botched release (sigh)
|
Upgraded version number to take precedence over previously botched release (sigh)
|
||||||
|
|
||||||
## [1.50.0] - 2014-08-14
|
## [1.50.0] - 2014-08-14
|
||||||
|
|
||||||
Refactored util out of examples and into the main package
|
Refactored util out of examples and into the main package
|
||||||
|
|
||||||
## [1.49.0] - 2014-07-23
|
## [1.49.0] - 2014-07-23
|
||||||
|
|
||||||
Support for "Your Music" tracks (add, delete, get), with examples
|
Support for "Your Music" tracks (add, delete, get), with examples
|
||||||
|
|
||||||
## [1.45.0] - 2014-07-07
|
## [1.45.0] - 2014-07-07
|
||||||
|
|
||||||
Support for related artists endpoint. Don't use cache auth codes when scope changes
|
Support for related artists endpoint. Don't use cache auth codes when scope changes
|
||||||
|
|
||||||
## [1.44.0] - 2014-07-03
|
## [1.44.0] - 2014-07-03
|
||||||
|
|
||||||
Added show tracks.py example
|
Added show tracks.py example
|
||||||
|
|
||||||
## [1.43.0] - 2014-06-27
|
## [1.43.0] - 2014-06-27
|
||||||
|
|
||||||
Fixed JSON handling issue
|
Fixed JSON handling issue
|
||||||
|
|
||||||
## [1.42.0] - 2014-06-19
|
## [1.42.0] - 2014-06-19
|
||||||
|
|
||||||
Removed dependency on simplejson
|
Removed dependency on simplejson
|
||||||
|
|
||||||
## [1.40.0] - 2014-06-12
|
## [1.40.0] - 2014-06-12
|
||||||
|
|
||||||
Initial public release.
|
Initial public release.
|
||||||
|
|
||||||
## [1.4.2] - 2014-06-21
|
## [1.4.2] - 2014-06-21
|
||||||
|
|
||||||
Added support for retrieving starred playlists
|
Added support for retrieving starred playlists
|
||||||
|
|
||||||
## [1.1.0] - 2014-06-17
|
## [1.1.0] - 2014-06-17
|
||||||
|
|
||||||
Updates to match released API
|
Updates to match released API
|
||||||
|
|
||||||
## [1.1.0] - 2014-05-18
|
## [1.1.0] - 2014-05-18
|
||||||
|
|
||||||
Repackaged for saner imports
|
Repackaged for saner imports
|
||||||
|
|
||||||
## [1.0.0] - 2017-04-05
|
## [1.0.0] - 2017-04-05
|
||||||
|
|
||||||
Initial release
|
Initial release
|
||||||
|
|||||||
@ -352,8 +352,9 @@ class SpotipyBrowseApiTests(unittest.TestCase):
|
|||||||
cls.spotify = Spotify(auth=token)
|
cls.spotify = Spotify(auth=token)
|
||||||
|
|
||||||
def test_category(self):
|
def test_category(self):
|
||||||
response = self.spotify.category('rock')
|
rock_cat_id = '0JQ5DAqbMKFDXXwE9BDJAr'
|
||||||
self.assertTrue('name' in response)
|
response = self.spotify.category(rock_cat_id)
|
||||||
|
self.assertEqual(response['name'], 'Rock')
|
||||||
|
|
||||||
def test_categories(self):
|
def test_categories(self):
|
||||||
response = self.spotify.categories()
|
response = self.spotify.categories()
|
||||||
@ -369,11 +370,11 @@ class SpotipyBrowseApiTests(unittest.TestCase):
|
|||||||
|
|
||||||
def test_categories_limit_low(self):
|
def test_categories_limit_low(self):
|
||||||
response = self.spotify.categories(limit=1)
|
response = self.spotify.categories(limit=1)
|
||||||
self.assertEqual(len(response['categories']), 1)
|
self.assertEqual(len(response['categories']['items']), 1)
|
||||||
|
|
||||||
def test_categories_limit_high(self):
|
def test_categories_limit_high(self):
|
||||||
response = self.spotify.categories(limit=50)
|
response = self.spotify.categories(limit=50)
|
||||||
self.assertLessEqual(len(response['categories']), 50)
|
self.assertLessEqual(len(response['categories']['items']), 50)
|
||||||
|
|
||||||
def test_category_playlists(self):
|
def test_category_playlists(self):
|
||||||
response = self.spotify.categories()
|
response = self.spotify.categories()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user