mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-08 16:53:23 +00:00
This change allows us to record multiple matching requests to the same URL, and then play them back sequentially. Closes #40, #41
59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
import os
|
|
import json
|
|
import urllib2
|
|
import pytest
|
|
import vcr
|
|
|
|
|
|
def test_set_serializer_default_config(tmpdir):
|
|
my_vcr = vcr.VCR(serializer='json')
|
|
|
|
with my_vcr.use_cassette(str(tmpdir.join('test.json'))):
|
|
assert my_vcr.serializer == 'json'
|
|
urllib2.urlopen('http://httpbin.org/get')
|
|
|
|
with open(str(tmpdir.join('test.json'))) as f:
|
|
assert json.loads(f.read())
|
|
|
|
|
|
def test_default_set_cassette_library_dir(tmpdir):
|
|
my_vcr = vcr.VCR(cassette_library_dir=str(tmpdir.join('subdir')))
|
|
|
|
with my_vcr.use_cassette('test.json'):
|
|
urllib2.urlopen('http://httpbin.org/get')
|
|
|
|
assert os.path.exists(str(tmpdir.join('subdir').join('test.json')))
|
|
|
|
|
|
def test_override_set_cassette_library_dir(tmpdir):
|
|
my_vcr = vcr.VCR(cassette_library_dir=str(tmpdir.join('subdir')))
|
|
|
|
cld = str(tmpdir.join('subdir2'))
|
|
|
|
with my_vcr.use_cassette('test.json', cassette_library_dir=cld):
|
|
urllib2.urlopen('http://httpbin.org/get')
|
|
|
|
assert os.path.exists(str(tmpdir.join('subdir2').join('test.json')))
|
|
assert not os.path.exists(str(tmpdir.join('subdir').join('test.json')))
|
|
|
|
|
|
def test_override_match_on(tmpdir):
|
|
my_vcr = vcr.VCR(match_on=['method'])
|
|
|
|
with my_vcr.use_cassette(str(tmpdir.join('test.json'))):
|
|
urllib2.urlopen('http://httpbin.org/')
|
|
|
|
with my_vcr.use_cassette(str(tmpdir.join('test.json'))) as cass:
|
|
urllib2.urlopen('http://httpbin.org/get')
|
|
|
|
assert len(cass) == 1
|
|
assert cass.play_count == 1
|
|
|
|
|
|
def test_missing_matcher():
|
|
my_vcr = vcr.VCR()
|
|
my_vcr.register_matcher("awesome", object)
|
|
with pytest.raises(KeyError):
|
|
with my_vcr.use_cassette("test.yaml", match_on=['notawesome']):
|
|
pass
|