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.5.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.5.0.tar.gz | 2.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fakespotipy-0.5.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 5.6 kB
Release files / fakespotipy-0.5.0.tar.gz
| Download URL | fakespotipy-0.5.0.tar.gz |
|---|---|
| Size | 2.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6152d44dc3f71351b245312545898332ce66f6de2ce124296785226daf2a00c8
|
|
BLAKE2b-256 checksum How to use checksums |
db4ef49014aaab001c07050418ba372bfd2bb36e2cde44d3d0f6bb4170a363f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / fakespotipy-0.5.0-py2.py3-none-any.whl
| Download URL | fakespotipy-0.5.0-py2.py3-none-any.whl |
|---|---|
| Size | 2.8 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
94ab7b27c83b0ee828f74d375666e676150877b84b08289a3a71d1e338b740d4
|
|
BLAKE2b-256 checksum How to use checksums |
43062dfacd083b503f1f6ae263220e2e1fe9f19c6a7fd2fed3a5536d7c5fc361
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |