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:
Sean Park 2022-11-13 02:42:25 -08:00 committed by GitHub
parent 1265d7b915
commit 6f56504c2c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 207 additions and 164 deletions

View File

@ -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
@ -175,6 +182,7 @@ 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
@ -260,7 +268,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- 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
@ -283,6 +290,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- 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
@ -326,16 +334,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.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 `playlist` to get a playlist without specifying a user
- Support for `current_user_saved_albums_delete` - Support for `current_user_saved_albums_delete`
- Support for `current_user_saved_albums_contains` - Support for `current_user_saved_albums_contains`
@ -344,95 +355,126 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Lint with flake8 using Github action - Lint with flake8 using Github action
### Changed ### Changed
- Fix typos in doc - Fix typos in doc
- Start following [SemVer](https://semver.org) properly - 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

View File

@ -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()