fakespotipy
A fake spotipy client. For unit tests and stuff.
Installation
pip install fakespotipy
Usage
# Initialize the client
>>> from fakespotipy import FakeSpotify
>>> client = FakeSpotify()
# 1. Example of a mock object response
# First, set up a mock response
>>> response = {
... 'expires_in': 60,
... 'access_token': 'BQDdKdI1eLRl2ErhCRC0jHdfr_DYEm_ecUuUPq2-dW_txQZeCrA32lNSYOZO7v7rEPXqC846nHlgSeg4m0c3-y05W9ISJRluCXdco4igf8eMhgLojXZb4RbE0vmlH4a06T3TX7Jg-uN1ClYFEkXnCGCA0NBNqkiFYDKlvMWqZExQom-XF-8pr6gV_PpzNJ2eKRRR6_ORp1ABUhtJ_aD8f5W4GexLq1mzpWQLkKE_Fq_LuwE1JhpxxNxRI-FLtzz46Jc',
... 'token_type': 'Bearer',
... 'refresh_token': 'AQDDNE-U4IElufFWfNjlwy7rOn-Kyt2PeIN1Nze2I5rVi7c9Etcx9blVkHVe5liSoKRMbJzS3etlA3sQ-0UqMKxRJ-HN08jrO_1IoDgciSZOaAUaQUiSkBOgtgnmO_tEHCU',
... 'scope': 'user-top-read',
... }
# Prep the client with that response
>>> client.add_response('refresh_access_token', response)
# And trigger it
>>> client.refresh_access_token('refresh_token_str_here')
{'access_token': 'BQDdKdI1eLRl2ErhCRC0jHdfr_DYEm_ecUuUPq2-dW_txQZeCrA32lNSYOZO7v7rEPXqC846nHlgSeg4m0c3-y05W9ISJRluCXdco4igf8eMhgLojXZb4RbE0vmlH4a06T3TX7Jg-uN1ClYFEkXnCGCA0NBNqkiFYDKlvMWqZExQom-XF-8pr6gV_PpzNJ2eKRRR6_ORp1ABUhtJ_aD8f5W4GexLq1mzpWQLkKE_Fq_LuwE1JhpxxNxRI-FLtzz46Jc', 'token_type': 'Bearer', 'expires_in': 60, 'refresh_token': 'AQDDNE-U4IElufFWfNjlwy7rOn-Kyt2PeIN1Nze2I5rVi7c9Etcx9blVkHVe5liSoKRMbJzS3etlA3sQ-0UqMKxRJ-HN08jrO_1IoDgciSZOaAUaQUiSkBOgtgnmO_tEHCU', 'scope': 'user-top-read'}
# If we try again, we get a NotImplementedError
>>> client.refresh_access_token('refresh_token_str_here')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "fakespotipy.py", line 37, in method
raise NotImplementedError
NotImplementedError
# 2. Example of a mock function response
# First set up the mock function
>>> def refresh_response(refresh_token_str):
... print "i'm refreshing!"
... if refresh_token_str == 'foo':
... raise Exception("Foo! Oh noes!")
... return {'foo': 'bar'}
...
# Add it a couple of times (so we can call it twice)
>>> client.add_response('refresh_access_token', refresh_response)
>>> client.add_response('refresh_access_token', refresh_response)
# Trigger it
>>> client.refresh_access_token('refresh_token_str_here')
i'm refreshing!
{'foo': 'bar'}
# Trigger again, using anticipated input to trigger custom Exception
>>> client.refresh_access_token('foo')
i'm refreshing!
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "fakespotipy.py", line 40, in method
return response(*args, **kwargs)
File "<stdin>", line 4, in refresh_response
Exception: Foo! Oh noes!
# Try one more time, get NotImplementedError
>>> client.refresh_access_token('foo')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "fakespotipy.py", line 37, in method
raise NotImplementedError
NotImplementedError
Testing
python setup.py test
Metadata
Release files for fakespotipy 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fakespotipy-0.6.0.tar.gz | 2.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fakespotipy-0.6.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 5.7 kB
Release files / fakespotipy-0.6.0.tar.gz
| Download URL | fakespotipy-0.6.0.tar.gz |
|---|---|
| Size | 2.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f2fc04bd344e0c2a9391071390cf5b72ddb4c5c636f619094cc7c7fc4538bbc9
|
|
BLAKE2b-256 checksum How to use checksums |
71df75390475afab5039a2050a7bafb2096ceb7dcc5efbf7ec3f70346ce5d6d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / fakespotipy-0.6.0-py2.py3-none-any.whl
| Download URL | fakespotipy-0.6.0-py2.py3-none-any.whl |
|---|---|
| Size | 2.9 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
0da1999e86628656044245108ab73c186fd67546cd09823eb4a2b7acad61ef4e
|
|
BLAKE2b-256 checksum How to use checksums |
4f7b9ac220e3db14c785cc5f7511c19c3b59f0d94a71a58afd09617773238ea4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |