Python 来自twitter api的vcr.py商店调用

Python 来自twitter api的vcr.py商店调用,python,testing,vcr,Python,Testing,Vcr,我想使用和检查API请求或 第30行: 后来: res = requests.post(url='https://api.twitter.com/oauth2/token', data={'grant_type': 'client_credentials'}, headers=post_headers) # ... etc ... 但是当你做一些类似的事情时: from vcr_unittest impor

我想使用和检查API请求或

第30行:

后来:

        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做到这一点?

VCRTestCase构建在vcr之上。同时使用两者没有多大意义。如果删除行@vcr.use_CASEX,您应该会在cwd中看到名为TwitterRetrievalAndStorageTests.test_recorded_session.yaml或json的磁带。相反,如果您没有从VCRTestCase继承并使用@vcr.use\u CASEX,则CASEX名称应为test\u recorded\u session.yaml,并且应与您的类位于同一文件夹中

一般来说,如果同时使用这两种方法,我注意到vcr优先于vcrpy unittest,但情况并非始终如此

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)