vcr.py магазин звонить из твиттера api - PullRequest
0 голосов
/ 31 мая 2018

Я хочу использовать https://github.com/bear/python-twitter/ и проверять запросы API https://github.com/kevin1024/vcrpy или https://github.com/agriffis/vcrpy-unittest.

Из строк 30:

https://github.com/bear/python-twitter/blob/master/twitter/api.py#L30

30: import requests

и позже:

        res = requests.post(url='https://api.twitter.com/oauth2/token',
                            data={'grant_type': 'client_credentials'},
headers=post_headers)
        # ... etc ...

Тем не менее, когда вы делаете что-то вроде:

from vcr_unittest import VCRTestCase
import vcr
import twitter
from django.conf import settings


class TwitterRetrievalAndStorageTests(VCRTestCase):
    @vcr.use_cassette()
    def test_recorded_session(self):
        api = twitter.Api(
            consumer_key=settings.TWITTER_CONSUMER_KEY,
            consumer_secret=settings.TWITTER_CONSUMER_SECRET,
            access_token_key=settings.TWITTER_ACCESS_KEY,
            access_token_secret=settings.TWITTER_ACCESS_SECRET)

        statuses = api.GetUserTimeline(screen_name='nntaleb')
        for s in statuses:
            print(s)

Не создается файл кассеты.Есть ли способ сделать это с помощью Python-Twitter?

1 Ответ

0 голосов
/ 08 сентября 2018

VCRTestCase построен поверх vcr.Не имеет смысла использовать оба одновременно.Если вы удалите строку @vcr.use_cassette(), вы должны увидеть кассету с именем TwitterRetrievalAndStorageTests.test_recorded_session.yaml (или json) в вашем cwd.Если вместо этого вы не наследуете от VCRTestCase и используете @vcr.use_cassette(), имя кассеты должно быть test_recorded_session.yaml, и оно должно находиться в той же папке, что и ваш класс.

В общем, если вы используете оба,Я заметил, что vcr имеет приоритет над vcrpy-unittest, но это не всегда так.

...