一个虚伪的客户。单元测试之类的。
fakespotip的Python项目详细描述
假药
一个假的spotipy客户。单元测试之类的。
安装
pip install fakespotipy
用法
# Initialize the client>>>fromfakespotipyimportFakeSpotify>>>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(mostrecentcalllast):File"<stdin>",line1,in<module>File"fakespotipy.py",line37,inmethodraiseNotImplementedErrorNotImplementedError# 2. Example of a mock function response# First set up the mock function>>>defrefresh_response(refresh_token_str):...print"i'm refreshing!"...ifrefresh_token_str=='foo':...raiseException("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(mostrecentcalllast):File"<stdin>",line1,in<module>File"fakespotipy.py",line40,inmethodreturnresponse(*args,**kwargs)File"<stdin>",line4,inrefresh_responseException:Foo!Ohnoes!# Try one more time, get NotImplementedError>>>client.refresh_access_token('foo')Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>File"fakespotipy.py",line37,inmethodraiseNotImplementedErrorNotImplementedError
测试
python setup.py test