From efe6744eda590f97ef5fb5a767b5c9232fb6c62a Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Sun, 23 Aug 2015 18:10:01 -0700 Subject: [PATCH] v1.7.3 --- README.rst | 26 +++++++++++++++----------- setup.py | 2 +- vcr/config.py | 2 ++ vcr/matchers.py | 2 ++ 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/README.rst b/README.rst index d7ec041..5122a62 100644 --- a/README.rst +++ b/README.rst @@ -14,17 +14,18 @@ library `__. What it does ------------ -VCR.py simplifies and speeds up tests that make HTTP requests. The first -time you run code that is inside a VCR.py context manager or decorated -function, VCR.py records all HTTP interactions that take place through -the libraries it supports and serializes and writes them to a flat file -(in yaml format by default). This flat file is called a cassette. When -the relevant peice of code is executed again, VCR.py will read the -serialized requests and responses from the aforementioned cassette file, -and intercept any HTTP requests that it recognizes from the original -test run and return responses that corresponded to those requests. This -means that the requests will not actually result in HTTP traffic, which -confers several benefits including: +VCR.py simplifies and speeds up tests that make HTTP requests. The +first time you run code that is inside a VCR.py context manager or +decorated function, VCR.py records all HTTP interactions that take +place through the libraries it supports and serializes and writes them +to a flat file (in yaml format by default). This flat file is called a +cassette. When the relevant peice of code is executed again, VCR.py +will read the serialized requests and responses from the +aforementioned cassette file, and intercept any HTTP requests that it +recognizes from the original test run and return the responses that +corresponded to those requests. This means that the requests will not +actually result in HTTP traffic, which confers several benefits +including: - The ability to work offline - Completely deterministic tests @@ -608,6 +609,9 @@ new API in version 1.0.x Changelog --------- +- 1.7.3 [#188] ``additional_matchers`` kwarg on ``use_casstte``. + [#191] Actually support passing multiple before_record_request + functions (thanks @agriffis). - 1.7.2 [#186] Get effective_url in tornado (thanks @mvschaik), [#187] Set request_time on Response object in tornado (thanks @abhinav). - 1.7.1 [#183] Patch ``fetch_impl`` instead of the entire HTTPClient diff --git a/setup.py b/setup.py index f254683..9e77760 100644 --- a/setup.py +++ b/setup.py @@ -51,7 +51,7 @@ except Exception: setup( name='vcrpy', - version='1.7.2', + version='1.7.3', description=( "Automatically mock your HTTP interactions to simplify and " "speed up testing" diff --git a/vcr/config.py b/vcr/config.py index a94520f..e2389db 100644 --- a/vcr/config.py +++ b/vcr/config.py @@ -162,6 +162,7 @@ class VCR(object): if not isinstance(before_record_response, collections.Iterable): before_record_response = (before_record_response,) filter_functions.extend(before_record_response) + def before_record_response(response): for function in filter_functions: if response is None: @@ -221,6 +222,7 @@ class VCR(object): if not isinstance(before_record_request, collections.Iterable): before_record_request = (before_record_request,) filter_functions.extend(before_record_request) + def before_record_request(request): request = copy.copy(request) for function in filter_functions: diff --git a/vcr/matchers.py b/vcr/matchers.py index 5b2fb61..6d8cbf8 100644 --- a/vcr/matchers.py +++ b/vcr/matchers.py @@ -2,6 +2,8 @@ import json from six.moves import urllib, xmlrpc_client from .util import CaseInsensitiveDict, read_body import logging + + log = logging.getLogger(__name__)