1
0
mirror of https://github.com/kevin1024/vcrpy.git synced 2025-12-09 01:03:24 +00:00

Fix issue #36 - error message for unregistered matcher was broken

This commit is contained in:
Kevin McCarthy
2013-09-29 15:56:13 -10:00
parent cf8646d8d6
commit deed8cab97
6 changed files with 17 additions and 5 deletions

View File

@@ -259,6 +259,8 @@ This library is a work in progress, so the API might change on you.
There are probably some [bugs](https://github.com/kevin1024/vcrpy/issues?labels=bug&page=1&state=open) floating around too.
##Changelog
* 0.3.3: Bugfix for error message when an unreigstered custom matcher
was used
* 0.3.2: Fix issue with new config syntax and the `match_on` parameter.
Thanks, @chromy!
* 0.3.1: Fix issue causing full paths to be sent on the HTTP request

View File

@@ -19,7 +19,7 @@ class PyTest(TestCommand):
sys.exit(errno)
setup(name='vcrpy',
version='0.3.2',
version='0.3.3',
description="A Python port of Ruby's VCR to make mocking HTTP easier",
author='Kevin McCarthy',
author_email='me@kevinmccarthy.org',

View File

@@ -1,6 +1,7 @@
import os
import json
import urllib2
import pytest
import vcr
@@ -45,3 +46,11 @@ def test_override_match_on(tmpdir):
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

View File

@@ -46,6 +46,7 @@ def test_flickr_multipart_upload():
_pretend_to_be_flickr_library()
assert cass.play_count == 1
def test_flickr_should_respond_with_200(tmpdir):
testfile = str(tmpdir.join('flickr.yml'))
with vcr.use_cassette(testfile):

View File

@@ -50,6 +50,7 @@ def test_cassette_len():
def _mock_requests_match(request1, request2, matchers):
return request1 == request2
@mock.patch('vcr.cassette.requests_match', _mock_requests_match)
def test_cassette_contains():
a = Cassette('test')

View File

@@ -9,7 +9,7 @@ class VCR(object):
serializer='yaml',
cassette_library_dir=None,
record_mode="once",
match_on=['url','method'],
match_on=['url', 'method'],
):
self.serializer = serializer
self.match_on = match_on
@@ -42,10 +42,9 @@ class VCR(object):
try:
matchers = [self.matchers[m] for m in matcher_names]
except KeyError:
print "Matcher {0} doesn't exist or isn't registered".format(
matcher_name
raise KeyError(
"Matcher {0} doesn't exist or isn't registered".format(m)
)
raise KeyError
return matchers
def use_cassette(self, path, **kwargs):