From cb86605ed746a6fcfaa3fc70583013c16190dbf8 Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Mon, 3 Apr 2017 09:01:34 +0200 Subject: [PATCH 01/22] introduce some exception classes --- vcr/core.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/vcr/core.py b/vcr/core.py index 85e545c..daf2d83 100644 --- a/vcr/core.py +++ b/vcr/core.py @@ -53,6 +53,26 @@ orig_select_epoll = select.epoll +class VCRException(Exception): + pass + + +class VCRRecordingError(VCRException): + pass + + +class VCRPlaybackError(VCRException): + pass + + +class VCRPlaybackOutgoingTrafficMismatch(VCRPlaybackError): + """ + Exception that gets raised if the intercepted outgoing traffic on playback + is not matching the outgoing traffic during recording the VCR tape. + """ + pass + + class VCRSystem(object): """ Use this class to overwrite default settings on global scale From 46e119a158ebb39a4b1100fa9d2296ab53608ab6 Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Mon, 3 Apr 2017 11:12:07 +0200 Subject: [PATCH 02/22] refactor getting next playlist item also add soem more debug output --- vcr/core.py | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/vcr/core.py b/vcr/core.py index daf2d83..9f58822 100644 --- a/vcr/core.py +++ b/vcr/core.py @@ -179,6 +179,18 @@ def is_recording(cls): # @NoSelf def is_playing(cls): # @NoSelf return cls.status == VCR_PLAYBACK + @classmethod + def replay_next(cls, name, args, kwargs): + name_, args_, kwargs_, value_ = cls.playlist.pop(0) + # XXX: py < 3.5 has sometimes two sendall calls ??? + if sys.version_info < (3, 5): + if name == 'makefile' and name_ == 'sendall': + name_, args_, kwargs_, value_ = cls.playlist.pop(0) + if VCRSystem.debug: + print(' ', name, args, kwargs, ' | ', name_, args_, kwargs_, + '->', value_) + return value_ + def vcr_getaddrinfo(*args, **kwargs): if VCRSystem.status == VCR_RECORD: @@ -191,12 +203,7 @@ def vcr_getaddrinfo(*args, **kwargs): return value else: # playback mode - data = VCRSystem.playlist.pop(0) - value = data[3] - if VCRSystem.debug: - print(' ', 'getaddrinfo', args, kwargs, ' | ', data[0:3], - '->', value) - return value + return VCRSystem.replay_next('getaddrinfo', args, kwargs) def vcr_select_epoll(): @@ -332,16 +339,8 @@ def _exec(self, name, *args, **kwargs): return value else: # playback mode - # get first element in playlist - data = VCRSystem.playlist.pop(0) - # XXX: py < 3.5 has sometimes two sendall calls ??? - if sys.version_info < (3, 5) and name == 'makefile' and \ - data[0] == 'sendall': - data = VCRSystem.playlist.pop(0) - value = data[3] - if VCRSystem.debug: - print(' ', name, args, kwargs, ' | ', data[0:3], '->', value) - return value + # get next element in playlist + return VCRSystem.replay_next(name, args, kwargs) def __nonzero__(self): return bool(self.__dict__.get('_orig_socket', True)) From 80c0eaba30692fa6d2ab4bd28ddf2d5664df1c24 Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Mon, 3 Apr 2017 11:16:24 +0200 Subject: [PATCH 03/22] vcr playback: add checking of outgoing traffic whether it matches the playlist --- vcr/core.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/vcr/core.py b/vcr/core.py index 9f58822..acc2990 100644 --- a/vcr/core.py +++ b/vcr/core.py @@ -102,12 +102,16 @@ class VCRSystem(object): ``raise_if_not_needed`` : bool Raise an exception if vcr decorator is not needed because no socket traffic has been recorded, instead of just showing a warning. + ``raise_outgoing_mismatch`` : bool + Raise an exception if outgoing traffic encountered during playback is + not matching pre-recorded traffic in VCR tape. """ debug = False disabled = False overwrite = False playback_only = False raise_if_not_needed = False + raise_outgoing_mismatch = True recv_timeout = 5 recv_endmarkers = [] recv_size = None @@ -189,6 +193,35 @@ def replay_next(cls, name, args, kwargs): if VCRSystem.debug: print(' ', name, args, kwargs, ' | ', name_, args_, kwargs_, '->', value_) + if cls.raise_outgoing_mismatch: + # XXX TODO put this into a constant up top!? + if name not in ('recv', 'makefile'): + # XXX TODO make outgoing traffic normalizing routines a class + # XXX TODO property set is set in the project using vcr + def normalize(name, args, kwargs): + if name != 'sendall': + return name, args, kwargs + import re + pattern = ( + b'User-Agent: ObsPy\\/.*? \\(.*?, Python [0-9\.]*\\)') + repl = b'User-Agent: ObsPy (test suite)' + args = tuple([re.sub(pattern, repl, args[0], count=1)]) + return name, args, kwargs + # XXX TODO make normalize a list of normalizing functions that + # XXX TODO are applied to traffic during playback checks + if VCRSystem.debug: + print(' checking: ', name, args, kwargs, ' | ', + name_, args_, kwargs_) + name, args, kwargs = normalize(name, args, kwargs) + name_, args_, kwargs_ = normalize(name_, args_, kwargs_) + if VCRSystem.debug: + print(' checking, after normalization: ', name, args, + kwargs, ' | ', name_, args_, kwargs_) + if (name_, args_, kwargs_) != (name, args, kwargs): + msg = '\nExpected: {} {} {}\nGot: {} {} {}'.format( + name_, args_, kwargs_, name, args, kwargs) + VCRSystem.stop() + raise VCRPlaybackOutgoingTrafficMismatch(msg) return value_ From 4a8f5095509a0f57bb750569135f2af19c8483f4 Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Mon, 3 Apr 2017 11:36:44 +0200 Subject: [PATCH 04/22] VCRSystem: class variable that handles all normalization functions for outgoing traffic check during playback --- vcr/core.py | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/vcr/core.py b/vcr/core.py index acc2990..95dc533 100644 --- a/vcr/core.py +++ b/vcr/core.py @@ -105,6 +105,13 @@ class VCRSystem(object): ``raise_outgoing_mismatch`` : bool Raise an exception if outgoing traffic encountered during playback is not matching pre-recorded traffic in VCR tape. + ``outgoing_check_normalizations`` : list + List of functions that normalize outgoing traffic (both actually + encountered and pre-recorded) before checking for equality of + encountered and pre-recorded. Each function in the list will be applied + to outgoing traffic and should have a call syntax of + ``def custom_normalization(name, args, kwargs)`` and return a list of + potentially modified ``name, args, kwargs``. """ debug = False disabled = False @@ -112,6 +119,7 @@ class VCRSystem(object): playback_only = False raise_if_not_needed = False raise_outgoing_mismatch = True + outgoing_check_normalizations = [] recv_timeout = 5 recv_endmarkers = [] recv_size = None @@ -196,24 +204,13 @@ def replay_next(cls, name, args, kwargs): if cls.raise_outgoing_mismatch: # XXX TODO put this into a constant up top!? if name not in ('recv', 'makefile'): - # XXX TODO make outgoing traffic normalizing routines a class - # XXX TODO property set is set in the project using vcr - def normalize(name, args, kwargs): - if name != 'sendall': - return name, args, kwargs - import re - pattern = ( - b'User-Agent: ObsPy\\/.*? \\(.*?, Python [0-9\.]*\\)') - repl = b'User-Agent: ObsPy (test suite)' - args = tuple([re.sub(pattern, repl, args[0], count=1)]) - return name, args, kwargs - # XXX TODO make normalize a list of normalizing functions that - # XXX TODO are applied to traffic during playback checks if VCRSystem.debug: print(' checking: ', name, args, kwargs, ' | ', name_, args_, kwargs_) - name, args, kwargs = normalize(name, args, kwargs) - name_, args_, kwargs_ = normalize(name_, args_, kwargs_) + # apply all normalization functions + for norm_func in VCRSystem.outgoing_check_normalizations: + name, args, kwargs = norm_func(name, args, kwargs) + name_, args_, kwargs_ = norm_func(name_, args_, kwargs_) if VCRSystem.debug: print(' checking, after normalization: ', name, args, kwargs, ' | ', name_, args_, kwargs_) From e27e0f469aadb3c34db11723d346daa5108012fa Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Mon, 3 Apr 2017 16:13:24 +0200 Subject: [PATCH 05/22] add check of hashed source code, to make sure that test code has not changed since time of vcr tape recording --- vcr/core.py | 31 +++++++++++++++++++++++++++++-- vcr/utils.py | 20 ++++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/vcr/core.py b/vcr/core.py index 95dc533..ba5f208 100644 --- a/vcr/core.py +++ b/vcr/core.py @@ -37,7 +37,7 @@ import time import warnings -from .utils import classproperty, PY2 +from .utils import classproperty, PY2, get_source_code_sha256 VCR_RECORD = 0 @@ -73,6 +73,14 @@ class VCRPlaybackOutgoingTrafficMismatch(VCRPlaybackError): pass +class VCRPlaybackSourceCodeChangedError(VCRPlaybackError): + """ + Exception that gets raised if the executed source code has changed since + recording the VCR tape and at the time of playback. + """ + pass + + class VCRSystem(object): """ Use this class to overwrite default settings on global scale @@ -102,6 +110,9 @@ class VCRSystem(object): ``raise_if_not_needed`` : bool Raise an exception if vcr decorator is not needed because no socket traffic has been recorded, instead of just showing a warning. + ``raise_if_source_code_changed`` : bool + Raise an exception if the to be executed source code has changed since + recoring the VCR tape. ``raise_outgoing_mismatch`` : bool Raise an exception if outgoing traffic encountered during playback is not matching pre-recorded traffic in VCR tape. @@ -118,6 +129,7 @@ class VCRSystem(object): overwrite = False playback_only = False raise_if_not_needed = False + raise_if_source_code_changed = True raise_outgoing_mismatch = True outgoing_check_normalizations = [] recv_timeout = 5 @@ -559,6 +571,9 @@ def _vcr_inner(*args, **kwargs): else: warnings.warn(msg) else: + # add source code hash as first item in playlist + sha256 = get_source_code_sha256(func) + VCRSystem.playlist.insert(0, sha256) # remove existing tape try: os.remove(tape) @@ -586,9 +601,21 @@ def _vcr_inner(*args, **kwargs): VCRSystem.playlist = pickle.load(fh) if VCRSystem.debug: print('Loaded playlist:') - for i, item in enumerate(VCRSystem.playlist): + print('SHA256: {}'.format(VCRSystem.playlist[0])) + for i, item in enumerate(VCRSystem.playlist[1:]): print('{:3d}: {} {} {}'.format(i, *item)) print() + # check if source code has changed + sha256_playlist = VCRSystem.playlist.pop(0) + if VCRSystem.raise_if_source_code_changed: + sha256 = get_source_code_sha256(func) + if sha256 != sha256_playlist: + msg = ('Source code of test routine has changed ' + 'since time when VCR tape was recorded ' + '(file: {}).').format(tape) + raise VCRPlaybackSourceCodeChangedError(msg) + if VCRSystem.debug: + print('SHA256 sum of source code matches playlist') # execute decorated function value = func(*args, **kwargs) diff --git a/vcr/utils.py b/vcr/utils.py index d769195..a93a3f5 100644 --- a/vcr/utils.py +++ b/vcr/utils.py @@ -2,6 +2,8 @@ from __future__ import absolute_import, division, print_function from contextlib import contextmanager +import hashlib +import inspect import io import sys import unittest @@ -55,3 +57,21 @@ def wrapper(*args, **kwargs): raise unittest.SkipTest('recording in PY2 is not supported') return func(*args, **kwargs) return wrapper + + +def get_source_code_sha256(func): + """ + Lookup source code of unittest test method or doctest and + calculate SHA256 hash. + """ + if not inspect.isfunction(func) and not inspect.ismethod(func): + raise TypeError() + # doctest + if func.__module__ == 'doctest': + source_code = ''.join(example.source for example in + func.__self__._dt_test.examples) + # unittest test method + else: + source_code = ''.join(inspect.getsourcelines(func)[0]) + source_code = source_code.encode('UTF-8') + return hashlib.sha256(source_code).hexdigest() From 7a5d8c39ea6044572b5e5f000497f80be7126829 Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Mon, 3 Apr 2017 18:56:18 +0200 Subject: [PATCH 06/22] concatenate two consecutive sendalls in vcr playlist if this is how the actual outgoing traffic is sent --- vcr/core.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/vcr/core.py b/vcr/core.py index ba5f208..5fc9e71 100644 --- a/vcr/core.py +++ b/vcr/core.py @@ -216,6 +216,20 @@ def replay_next(cls, name, args, kwargs): if cls.raise_outgoing_mismatch: # XXX TODO put this into a constant up top!? if name not in ('recv', 'makefile'): + # XXX it seems that on Python 2 some 'sendall's for HTTP POST + # are distributed over two calls, concatenate them here for the + # check.. + # lookahead to next playlist item + if (name == 'sendall' and args and len(args) == 1 and + args[0].startswith(b'POST ') and + args_[0].endswith(b'\r\n\r\n') and + not args[0].endswith(b'\r\n\r\n') and + cls.playlist): + _next_name, _next_args, _next_kwargs, _ = cls.playlist[0] + if (_next_name == 'sendall' and len(_next_args) == 1 and + _next_kwargs == kwargs): + args_ = tuple([args_[0] + _next_args[0]]) + cls.playlist.pop(0) if VCRSystem.debug: print(' checking: ', name, args, kwargs, ' | ', name_, args_, kwargs_) From 2f2863c534a550def4359b20e018ade68c3f324c Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Mon, 3 Apr 2017 19:02:36 +0200 Subject: [PATCH 07/22] refactoring, only rename variables --- vcr/core.py | 51 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/vcr/core.py b/vcr/core.py index 5fc9e71..0d78572 100644 --- a/vcr/core.py +++ b/vcr/core.py @@ -204,45 +204,54 @@ def is_playing(cls): # @NoSelf return cls.status == VCR_PLAYBACK @classmethod - def replay_next(cls, name, args, kwargs): - name_, args_, kwargs_, value_ = cls.playlist.pop(0) + def replay_next(cls, name_got, args_got, kwargs_got): + name_expected, args_expected, kwargs_expected, value_ = \ + cls.playlist.pop(0) # XXX: py < 3.5 has sometimes two sendall calls ??? if sys.version_info < (3, 5): - if name == 'makefile' and name_ == 'sendall': - name_, args_, kwargs_, value_ = cls.playlist.pop(0) + if name_got == 'makefile' and name_expected == 'sendall': + name_expected, args_expected, kwargs_expected, value_ = \ + cls.playlist.pop(0) if VCRSystem.debug: - print(' ', name, args, kwargs, ' | ', name_, args_, kwargs_, - '->', value_) + print(' ', name_got, args_got, kwargs_got, ' | ', + name_expected, args_expected, kwargs_expected, '->', value_) if cls.raise_outgoing_mismatch: # XXX TODO put this into a constant up top!? - if name not in ('recv', 'makefile'): + if name_got not in ('recv', 'makefile'): # XXX it seems that on Python 2 some 'sendall's for HTTP POST # are distributed over two calls, concatenate them here for the # check.. # lookahead to next playlist item - if (name == 'sendall' and args and len(args) == 1 and - args[0].startswith(b'POST ') and - args_[0].endswith(b'\r\n\r\n') and - not args[0].endswith(b'\r\n\r\n') and + if (name_got == 'sendall' and args_got and + len(args_got) == 1 and + args_got[0].startswith(b'POST ') and + args_expected[0].endswith(b'\r\n\r\n') and + not args_got[0].endswith(b'\r\n\r\n') and cls.playlist): _next_name, _next_args, _next_kwargs, _ = cls.playlist[0] if (_next_name == 'sendall' and len(_next_args) == 1 and - _next_kwargs == kwargs): - args_ = tuple([args_[0] + _next_args[0]]) + _next_kwargs == kwargs_got): + args_expected = tuple( + [args_expected[0] + _next_args[0]]) cls.playlist.pop(0) if VCRSystem.debug: - print(' checking: ', name, args, kwargs, ' | ', - name_, args_, kwargs_) + print(' checking: ', name_got, args_got, kwargs_got, + ' | ', name_expected, args_expected, kwargs_expected) # apply all normalization functions for norm_func in VCRSystem.outgoing_check_normalizations: - name, args, kwargs = norm_func(name, args, kwargs) - name_, args_, kwargs_ = norm_func(name_, args_, kwargs_) + name_got, args_got, kwargs_got = norm_func( + name_got, args_got, kwargs_got) + name_expected, args_expected, kwargs_expected = norm_func( + name_expected, args_expected, kwargs_expected) if VCRSystem.debug: - print(' checking, after normalization: ', name, args, - kwargs, ' | ', name_, args_, kwargs_) - if (name_, args_, kwargs_) != (name, args, kwargs): + print(' checking, after normalization: ', name_got, + args_got, kwargs_got, ' | ', name_expected, + args_expected, kwargs_expected) + if (name_expected, args_expected, kwargs_expected) != \ + (name_got, args_got, kwargs_got): msg = '\nExpected: {} {} {}\nGot: {} {} {}'.format( - name_, args_, kwargs_, name, args, kwargs) + name_expected, args_expected, kwargs_expected, + name_got, args_got, kwargs_got) VCRSystem.stop() raise VCRPlaybackOutgoingTrafficMismatch(msg) return value_ From b7c2b21d83b02aa1c392b95ffa2eb9f76417603a Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Mon, 3 Apr 2017 23:13:23 +0200 Subject: [PATCH 08/22] remove compatibility for non-gzipped vcr tapes, we need to create new tapes anyway, so there will be no valid old vcr tapes around --- vcr/core.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/vcr/core.py b/vcr/core.py index 0d78572..e13000e 100644 --- a/vcr/core.py +++ b/vcr/core.py @@ -615,13 +615,8 @@ def _vcr_inner(*args, **kwargs): msg = 'Missing VCR tape file for playback: {}' raise IOError(msg.format(tape)) # load playlist - try: - with gzip.open(tape, 'rb') as fh: - VCRSystem.playlist = pickle.load(fh) - except OSError: - # support for older uncompressed tapes - with open(tape, 'rb') as fh: - VCRSystem.playlist = pickle.load(fh) + with gzip.open(tape, 'rb') as fh: + VCRSystem.playlist = pickle.load(fh) if VCRSystem.debug: print('Loaded playlist:') print('SHA256: {}'.format(VCRSystem.playlist[0])) From 9ed6c9ec2fc1366cb8ad722b0a44d654fde37736 Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Tue, 4 Apr 2017 13:26:04 +0200 Subject: [PATCH 09/22] refactoring --- vcr/__init__.py | 2 +- vcr/core.py | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/vcr/__init__.py b/vcr/__init__.py index e772de8..036ef61 100644 --- a/vcr/__init__.py +++ b/vcr/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -from .core import vcr, VCRSystem +from .core import vcr, VCRSystem, VCRException diff --git a/vcr/core.py b/vcr/core.py index e13000e..ac61532 100644 --- a/vcr/core.py +++ b/vcr/core.py @@ -165,10 +165,14 @@ def reset(cls): cls.recv_endmarkers = [] cls.recv_size = None + @classmethod + def clear_playlist(cls): + cls.playlist = [] + @classmethod def start(cls): # reset - cls.playlist = [] + cls.clear_playlist() cls.status = VCR_RECORD # apply monkey patches socket.socket = VCRSocket @@ -192,7 +196,7 @@ def stop(cls): select.select = orig_select_select telnetlib.Telnet.read_until = orig_read_until # reset - cls.playlist = [] + cls.clear_playlist() cls.status = VCR_RECORD @classproperty @@ -212,7 +216,7 @@ def replay_next(cls, name_got, args_got, kwargs_got): if name_got == 'makefile' and name_expected == 'sendall': name_expected, args_expected, kwargs_expected, value_ = \ cls.playlist.pop(0) - if VCRSystem.debug: + if cls.debug: print(' ', name_got, args_got, kwargs_got, ' | ', name_expected, args_expected, kwargs_expected, '->', value_) if cls.raise_outgoing_mismatch: @@ -234,16 +238,16 @@ def replay_next(cls, name_got, args_got, kwargs_got): args_expected = tuple( [args_expected[0] + _next_args[0]]) cls.playlist.pop(0) - if VCRSystem.debug: + if cls.debug: print(' checking: ', name_got, args_got, kwargs_got, ' | ', name_expected, args_expected, kwargs_expected) # apply all normalization functions - for norm_func in VCRSystem.outgoing_check_normalizations: + for norm_func in cls.outgoing_check_normalizations: name_got, args_got, kwargs_got = norm_func( name_got, args_got, kwargs_got) name_expected, args_expected, kwargs_expected = norm_func( name_expected, args_expected, kwargs_expected) - if VCRSystem.debug: + if cls.debug: print(' checking, after normalization: ', name_got, args_got, kwargs_got, ' | ', name_expected, args_expected, kwargs_expected) @@ -252,7 +256,7 @@ def replay_next(cls, name_got, args_got, kwargs_got): msg = '\nExpected: {} {} {}\nGot: {} {} {}'.format( name_expected, args_expected, kwargs_expected, name_got, args_got, kwargs_got) - VCRSystem.stop() + cls.clear_playlist() raise VCRPlaybackOutgoingTrafficMismatch(msg) return value_ From f6c71db7138ba0122661a832100791e81b6bc424 Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Thu, 6 Apr 2017 11:36:16 +0200 Subject: [PATCH 10/22] omit first line when creating source code hash for vcr tape that's the @vcr line that may be changed to e.g. @vcr(debug=True) in debugging situations --- vcr/utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vcr/utils.py b/vcr/utils.py index a93a3f5..ce43a75 100644 --- a/vcr/utils.py +++ b/vcr/utils.py @@ -72,6 +72,7 @@ def get_source_code_sha256(func): func.__self__._dt_test.examples) # unittest test method else: - source_code = ''.join(inspect.getsourcelines(func)[0]) + # omit first line, which is the @vcr decorator line + source_code = ''.join(inspect.getsourcelines(func)[0][1:]) source_code = source_code.encode('UTF-8') return hashlib.sha256(source_code).hexdigest() From a16b8d4bcc2f242baac8e7eea219380f977bdd6c Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Fri, 7 Apr 2017 15:40:03 +0200 Subject: [PATCH 11/22] add normalization function for outgoing traffic checks in POST test --- tests/test_requests.py | 87 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 79 insertions(+), 8 deletions(-) diff --git a/tests/test_requests.py b/tests/test_requests.py index ab796bd..34721db 100644 --- a/tests/test_requests.py +++ b/tests/test_requests.py @@ -2,12 +2,78 @@ from __future__ import absolute_import, division, print_function import json +import re import tempfile import unittest import requests -from vcr import vcr +from vcr import vcr, VCRSystem + + +def _normalize_http_header(name, args, kwargs): + """ + normalize http headers in outgoing traffic: + + Expected: sendall (b'POST /post HTTP/1.1\r\n' + b'Host: httpbin.org\r\n' + b'User-Agent: python-requests/2.13.0\r\n' + b'Accept-Encoding: gzip, deflate\r\n' + b'Accept: */*\r\n' + b'Connection: keep-alive\r\n' + b'Content-Length: 147\r\n' + b'Content-Type: multipart/form-data; ' + b'boundary=45c2c6ddafe3498c94b4554d6fb6e503\r\n\r\n',) {} + Got: sendall (b'POST /post HTTP/1.1\r\n' + b'Host: httpbin.org\r\n' + b'User-Agent: python-requests/2.13.0\r\n' + b'Accept-Encoding: gzip, deflate\r\n' + b'Accept: */*\r\n' + b'Connection: keep-alive\r\n' + b'Content-Length: 147\r\n' + b'Content-Type: multipart/form-data; ' + b'boundary=9ce384e773e444fc9ae202103e971aab\r\n\r\n',) {} + """ + if name != 'sendall': + return name, args, kwargs + if len(args) != 1: + return name, args, kwargs + if b'HTTP' in args[0]: + # sort HTTP headers + # example: + # (b'GET /fdsnws/event/1/contributors HTTP/1.1\r\n' + # b'Host: service.iris.edu\r\nAccept-Encoding: gzip, deflate\r\n' + # b'User-Agent: python-requests/2.13.0\r\nConnection: keep-alive\r\n' + # b'Accept: */*\r\n\r\n') + x = args[0] + x = x.split(b'\r\n') + # two empty items at the end + x = x[:1] + sorted(x[1:-2]) + x[-2:] + x = b'\r\n'.join(x) + args = tuple([x]) + + # normalize user-agent string + pattern = ( + b'User-Agent: python-requests/.*?(\\r\\n)') + repl = b'User-Agent: python-requests/x.x.x\\1' + args = tuple([re.sub(pattern, repl, args[0], count=1)]) + + # normalize 'boundary=...' string + pattern = ( + b'(boundary)=[0-9a-fA-F]{32}((\\r\\n)|(;))') + repl = b'\\1=xxx\\2' + args = tuple([re.sub(pattern, repl, args[0], count=1)]) + elif args[0].startswith(b'--'): + # treat follow-up line with above boundary string.. right now our + # normalization is only aware of the current line.. this should be + # changed, we should normalize on the whole playlist to be able to + # properly handle such matches that appear over multiple lines.. + + # normalize boundary strings on follow-up lines + pattern = b'--[0-9a-fA-F]{32}' + repl = b'--' + b'x' * 32 + args = tuple([re.sub(pattern, repl, args[0])]) + return name, args, kwargs class RequestsTestCase(unittest.TestCase): @@ -33,13 +99,18 @@ def test_http_post(self): @vcr def test_http_post_file(self): - with tempfile.TemporaryFile(mode='wb+') as file: - file.write(b'test123') - file.seek(0) - files = {'file': file} - r = requests.post('http://httpbin.org/post', files=files) - out = json.loads(r.text) - self.assertEqual(out['files']['file'], 'test123') + VCRSystem.outgoing_check_normalizations = [ + _normalize_http_header] + try: + with tempfile.TemporaryFile(mode='wb+') as file: + file.write(b'test123') + file.seek(0) + files = {'file': file} + r = requests.post('http://httpbin.org/post', files=files) + out = json.loads(r.text) + self.assertEqual(out['files']['file'], 'test123') + finally: + VCRSystem.outgoing_check_normalizations = [] @vcr def test_cookies(self): From 1b30cfa787b149c66a85106acb5497a42d804b44 Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Fri, 7 Apr 2017 16:15:12 +0200 Subject: [PATCH 12/22] update all test vcr tapes --- tests/vcrtapes/test_core.read_test.vcr | Bin 10202 -> 10326 bytes .../test_http_client.test_http_get.vcr | Bin 872 -> 963 bytes ...test_http_client.test_http_get_invalid.vcr | Bin 665 -> 717 bytes .../test_http_client.test_http_post.vcr | Bin 664 -> 761 bytes .../test_http_client.test_https_get.vcr | Bin 10197 -> 10324 bytes .../test_http_client.test_https_head.vcr | Bin 945 -> 1031 bytes ...est_http_client.test_redirect_to_https.vcr | Bin 664 -> 720 bytes ...st_requests.test_allow_redirects_false.vcr | Bin 874 -> 935 bytes .../test_requests.test_cookie_jar.vcr | Bin 744 -> 807 bytes tests/vcrtapes/test_requests.test_cookies.vcr | Bin 741 -> 805 bytes .../vcrtapes/test_requests.test_get_fdsn.vcr | Bin 1960 -> 2046 bytes .../test_requests.test_get_obspy_example.vcr | Bin 1600 -> 1748 bytes .../vcrtapes/test_requests.test_http_get.vcr | Bin 708 -> 764 bytes .../vcrtapes/test_requests.test_http_post.vcr | Bin 925 -> 981 bytes .../test_requests.test_http_post_file.vcr | Bin 997 -> 1046 bytes .../vcrtapes/test_requests.test_https_get.vcr | Bin 11178 -> 11300 bytes .../vcrtapes/test_requests.test_redirect.vcr | Bin 31170 -> 31239 bytes .../test_requests.test_redirect_twice.vcr | Bin 25204 -> 25101 bytes .../vcrtapes/test_requests.test_sessions.vcr | Bin 1076 -> 1131 bytes .../vcrtapes/test_requests.test_sessions2.vcr | Bin 813 -> 869 bytes tests/vcrtapes/test_socket.test_arclink.vcr | Bin 226 -> 288 bytes tests/vcrtapes/test_socket.test_seedlink.vcr | Bin 249 -> 302 bytes .../vcrtapes/test_telnetlib.test_arclink.vcr | Bin 439 -> 494 bytes ...telnetlib.test_read_until_only_linesep.vcr | Bin 455 -> 509 bytes 24 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/vcrtapes/test_core.read_test.vcr b/tests/vcrtapes/test_core.read_test.vcr index 88db77d2bef2e5814c721c43c9cdbcd2332959b8..26dc002d10eedfeb907ae4704bff008705ced9f3 100644 GIT binary patch literal 10326 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 delta 10157 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 ORQd}gSQ#`L1pojB?z!g=oLYZJX1kod zf6YF4&F&R$@!HXOyX*KeyPxd3QYfNH>_PZgT)L$fbxj<-Tr8Ij_MzK}aH?DHG; z#Wnj<==iD-J`m^(PSF^rhtD0rgC{``gGPGxbCypaN^%tWQN2-g~Y9A9p zoWV;KPSD|VO?v?_iPA-kyv3+VXHeiTz#J1bPhi=4ez~#R;rOc;GcE zVe2BrXI?c}4Uc>6MQrx#`oZDeU8>bMm@bE!QFZAe$Wp7^)X;yg-tpM%kqc_NNq)d* zYd;MPGW;K@X=6S=Vxwu6o)}IP9Mz@>&$WHi3?Mxju4g0CgU)bT;m$i$f7m3M)^X^G zLC2N-vlQ1m_28&(mL@0p(z@zZ+Lz7h{uw=O|C@SgzPjprjRReCty0vv7-`n4nK?D; zE9Y|(bnKq9v5 a#{t`OrS2c>rx9mAqvD^1Sm~CP1ONc3P^uUJ diff --git a/tests/vcrtapes/test_http_client.test_http_get_invalid.vcr b/tests/vcrtapes/test_http_client.test_http_get_invalid.vcr index 249f98a103031d9a6ab3e55a1253bf819074077e..36980205f37479e6f1e091bacd95ba47f9e43569 100644 GIT binary patch delta 684 zcmV;d0#p5&1wWjtWU+<)nZc&303xg`h`V>fQa#=3%$jX@q+^EJ(OHfyDz@D$jVhb-3GV z^mJHG7MhEZDy6}#NLNeEs`!4ztl%2x&GrSXNVrWTl*-YPqEuuVrxNZYE9Y=`0{2=H z?q8yUXN(Mo@PHmt!8k2+o=tx@I;=*Uif=c1sA`)w+UfP$Rb0U(eMb~BK>syS(nCu5 zNE(gl(=;0dC}lj8sT`N|k`51}MOA4?WSU`kbODb$@Z=nxPT-mH@w^-@D|$?hct0I- zcoEI3V;;lHb9gm@*Yq$I`o>uDVs~GMH=lk3N>-!4bDB1Dgr@ddLZW{yagwo;zDa1p zjZKlsTnqy=%F|OKxzd%QTp8baHjqhxuyv*N#v>je$$!e~Xh_m*4bg<;1()k5vTt}L zz031co(E_zrMW0XUmCl+-KtkHOL}C4#i+&Q-YGSH@VrPx7NGicQZsTT+bSc=w6H&g zZE?nP&Ww$5fWmIOqN0Dj9A#0=>>J^5D9()iJRPL!`RAz-sh~JYmEW+_3H$vtQ-faT z95e1>hwwP2vDr6GY}S}ZiElfeM{Q<1min(g@f{??8ap){+RIp5r?bMN`JdJIaT;B6|3GGT)F zei|hKhm|WS6k?hQBJ^1XtL8P{JB5EGclSrF zZgYrWJzQ%mo@}MShKJ-)D(kkb8@gG7yY1d3AOV|1z`cUEE-B?n!l(c>L>F*>0S~$Y z9$ul0B|eE`ctl5(`;2CYCHV!xme-K{pgF|Fic!Ib!(p#z>ZXbgc_tkE-w-NtDP>ck zHS^LanK(G|St24aSCNX~v3Gw*c8ZCJ5)+QI?KyZm-J)-siK#S5bq|kZBE` zh?K_;o~F?m5lre*k*>7wESZSV!Djhd8_uW9!Gir1#c52UWCzobq#1t`^_d8?nu-Q2 zJ!7eZI}uHJ#si_XT7zOuH&oQ(K(~q50+*TPaJIJn_7}`?!M+b##x zGKp!D>bP39?0^K8QK4s6V40PQSt{GcHnR;@t&M4ITmH66wrQ07ajoi?{hb~WVZFGs z$4}+_^&9c-$^AKaFiXB+qlDdQic5xB#fITnhEu8GgU&Dy`bG|bLmBmlK74E|-9PYY REZ{TK{{gx4<)9h^008$VGEo2k diff --git a/tests/vcrtapes/test_http_client.test_http_post.vcr b/tests/vcrtapes/test_http_client.test_http_post.vcr index a02d21eb8258586eb7d501554cdd59d727c6c957..d77f72c848237148d8e01e73ff0de58d9cab01c8 100644 GIT binary patch delta 734 zcmV<40wMjF1^ERBABzYGUY+NW2PuEqZqq;%bqf?a#gwH`c7{U1g~nSPCpH98poJ=3 zqQpXesUk1q*lIG)wI_r;M1qIFU+}GrQ&phyz}wvIoO{oiZ}UeWNbXxf5cG0LY89(& zl1MFADt=V4OslGqFo-NmD{H2yYL;)+%rH`YpH!nLjQp@>l~tc;YDI@R$z6ZqI9JKgcc73tL`seZyvTCtl&?M(^NEB6VazMXEr_~g^0F-fDBk^yBJPr z*TzXmC`;H_MDJ6|_`9@6XqUw{HjFW;FHN#eGwqC&>_Z<g1VP&B5 zQMJ*O7gV{a+eD;xZsM%;q0;tH_AmBZ=cYnT>;WkczCI`C-g}OJPM(6IY0jLYC><(D zs}=dI&0#`w=H*p0>BM^27anIik2)|}sa6y>=I$94sD83rY1HjnxpahJO2B`u0o*=? zY3&j(?KKXL%Qk`;Z>pj=Qci){v{SyI=k@I8O?}gZJC*7MAOUkkz+KImk+91dqpkqe zLqoVXfcawq_s397S&IY#EVvDqx2PK<%0>qSi_Ra3S5N9THt@b}SBsDeDN&!uk9q-NJ&N3nL7O&#ri)A5sgG zFbsT`2%j_KJk#s-GHo7pGf5PT2W+WGMex9xmO}=T#G-oo>Y2KgO`6pcr}36Qt6H6 z%u1CmIiqbqpn#o8Sw>BGJA|bHymK2qM>~B%4 zc4}B^r6;<<7wmc@im7ZUCZe7Bq@qJU_R+$g5TRul*U~dmS5hlf^xY>G9u53o#CAkj z+@{e#A-i6}&c;y`Ocm8=%a7zklNc5pZxQT8v|U`fvF+0Kjg&2eY^%sjQ(qYc^q~e? WMLGTrt4#qPss0z2B`3;y0{{SaAvW&- diff --git a/tests/vcrtapes/test_http_client.test_https_get.vcr b/tests/vcrtapes/test_http_client.test_https_get.vcr index 610930f29fa780c6d3a19431599c7897aae0c63e..41bd9b520cc11d6c4f275530dd3f9985ef1174e6 100644 GIT binary patch literal 10324 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 m(Jb_T-Tm7?^dGE_P#b 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 P3#vUQ-L&olU) zjJqR!W<(&*izu6hd@JKVl3SOTm)Yf7_#w-N(Tv~i{C20E!f}Y_L@2{vwS6{p2K91B z;r9f8ekuNN)L|C(}~!Bm~kIVp@B4LL&<+_o3@=uA8nA@DZ$?o{4o*y?TmXrX-dc#!Ggcz@7(ft zZ}@v%!QcNQ6cgs5AmAV1GaPyZ#|mM|kHVk0H5qT#%QcV#O~>iyBw|`=hOw~0tG!4o zWsJ#EsP#lk*~|viBTP`SPAh4Jf9P&Ys{jegbpFu`{_%i+a?3xx;h%p=kk2#j0~uYQ zIhoRc@Gsmgxr`S-`_o;?_9qlDG!69HX=O;F z3liCY%_zG{E7gz*NufIHC9#1ZS0d+&MQ{MHkD{1}!|02X0hf7zG; zVlyJ0CrKS?rG|tgYD9D&Xhl$7MzRFG2y|#`mTeZmQO8LuV~T8$ly`w5Mq^)^&7?{% zNG;SVd`pQP~Lx(lWf|c*>Ya4)Fu@Y zu9R#zbdj`hsKb(;FG5`}WDQFWRcU`b)b_`9O@g6FnpeYcPG!daY7$Vaw#i!U)1-R~ zbfuyhIV@<}0iX;AD~}9UlUleyGJXJ-l&P_gjC|p6_avkzgLSJn?xGU)Q3cb%uv&DR z=K(z(md2N(qh5b&<-vYMw+?q-mFBC~{9>e;rFOU)M?v1GY2?S@(G>RBc?jEnY>CC% z3C1QH{g2Y1x?DE+WF7^_W*v_k#A1TI}J}-uS>7sv+G{|uxjaAJD&qFURU9Imd%iDhEMC6w8MnAr>#gNXSQlSCJgYf836#73JLg*A;DM_8VUg c>bC>_T|3qNm1ib`KPB1U0o5)rN@)cE0LE47TmS$7 delta 920 zcmV;J184k)2(bqTABzYG{7T@F2PuD3TXW(z6lRllck3;??e>0G(>~Bi3^v$YoXGsSG8thDtY9R|79?aQGwnmRKdOJOa<<)e+dlTeBkO$nzVn?Uou7BkS*}p< zp5$`51>!IW5=`clJt%ljMd<44su*v1NJ)_<3$`=-?ZF`Dr_^5}F4luy=&+OD1vl z1akIn!Fwdm_>>UjbCwUKJNERJJsWZM-YY0YB!E%G-uEwj8X!NF5XpWd_T1|Tyk|B$ zpago3GcJiFd8tQJZh$w7$xDAt-$yZ*&5Vo5!T>lxgk!$VOL>WX;5`&l5#*St?8BGr zqY3-?j(u{=J{@#8`>fzS7Vru#(HuvJeeUguZ8BqD+_5ij*;oDrrc!ImQQEg8_Vo|H zuy4ZW-ubRD_lGM`Ruo_j@{)~`4N43^7MNV;r8Xs8*pQuVj10ihH7|dKd=(u6KZHq& z_|clr<$7N7qQ<56MZVpXr((m?18Q6}Xzf5IINQVdp2I!8az(Gl}1>*#A zKSZ4WmF!1E7Cbb7R@2J*>&{FdSs-v4V>`sMW11u4WWfTODwSfm`UXA$=00ouxAoV9NSuVuJEM^!~R1eo~IIzaY%)}enZDDXoNVW|j$i|au;t^4-L84P%Lt#@4fkr=wfgHo8@JT@(cYU>y6W|2#(4Z^g}S6e4?D`fgVQloYpAG6sqiB2k}?;bao2*=94rn!)wOt-5U zv7k9!*0}jEsxyD>kVF}p^rS-Pwf(aQw}vhExTTdAC+SANv1qD^DoRZZ&VOCe{nUa`jOw=&wl~O)er4ayIQt$Ie+LLa8`}2e1ONbnybcVn! z*9~bfV7QzxH$;lr(PWxp;Sg^%|132mCt}VBxZG`jZ}hvpPPNjMafRdU8Ll4TTH*?? z)cW;SwI}1cx6)WOg_49D=9btB*;HE3q|%v8N>Are7P1$($?=ZGQAwCm90kN>}847IB08 ze}y7f90w*mS&ge`Ff<5tA>fox6#h4d5A@}x2eNm|qMM9&yn!N}-juh~=N?=0ZL zd9pX12r`E=u6lgzUjqja47q0zJ)4;)R5#@LX%Pp70WPB*cZL6{4z%8kliIO^p17;yPhXVir9FkAr delta 628 zcmV-)0*n371(*c~ABzYG0!!eL2Qh!kQrj>THPG@9HErqpiAuXjXPP)p!_c}RGbs&_ z2}zj53vZZ=Ei1Mrj^t~LM;4iB7toLDy8l%fVrHrq9Ea=@wgz80OnhN=9(Hw1sPI_dY#>7zh`&rwHAT}33n!N_ZWW`bJu)r zuit3bZ3Iiqvh`@W@$IMIu)+Zo=bBc+!QZ7w~KX&zn^VFLKVZqDStK z4p>Ctr8BR>#DiBC@OlDoNS_JxeJp9(=pcCe@fU1_>(1XfO}jRPKNm~5B~Gc2Z90lY z;wCIoSNCXgN)rq7fbnx3{ct6lh-Nt^SosqXq-DtQ-IU5Wzfz#{dj}jrT zy_nzdNX>7@i`2)-W>93w9#PG9>iX4+8cjs2S=;u+3HK|;6;Lszw32zkA7d{dA`;2Y z=2^%j-OO;JY|x}y3C-KtDykSWD!W4oX3@0uw>cxLJUz@D0S?udc-Mu^rq=!q?>z}0 OXyG6HZ*sLk0{{SZLNiqW diff --git a/tests/vcrtapes/test_requests.test_allow_redirects_false.vcr b/tests/vcrtapes/test_requests.test_allow_redirects_false.vcr index fdb0625d2325e9f8b17cca7abc84082d6ad2535c..0dd83a850ec3bf4d7add6ffb8947b4b481ca9461 100644 GIT binary patch delta 900 zcmV-~1AF}H2B!xHABzYGc%A2w2Qq(MbJIo?H30$$3@vS;-)z&CiZqtAlKdgzxR}%l z85752n;E@iGWuA1HIcQt(k9@}c&2?YeQAGI|5sPGgOi!UV_&qp_nf^t_ns^LzIFr! z*?Cqd6sm@4X+x``>t5M%Jx#;9X;dtWm|n%gdJqgNHBYOVl`_WFnrB#6*}#7l&$o0_ z*R){;uE@@9k!M7>8w6<>4;ieXJfe9?)n+?PY9QqyT`9O{cdYVf@|lo z{^3shxIgH%ngh|@3aOI+@jap>yAiX0Li&47HsK?p(%RVP%zfv zcDwr)?r&NF2CP z1P}aUp9RFvBogNv2_8Cs3w*CNKq`7M7<5&v;G*<`W!y%q>Wk8=jHIRJh{PhEOgLq6 zDJ5`9GM=frf(=D0N=@G<2`{zs)L}dl34RNcEfkPpXy*Jyeye0 zEFHmSyGyT8F)2S!Ve1G=m))+F6&;(3Zkh_#tDxj=s~j|!1D5H1s?I>4f+6~0%JhLK z@UQo}`0kbeuZiWn3zZ&JXHc7hC6wASeME&zPp43)xiQ;9_dkDEE*YaQjTw+}!csR4 zb7T4>JtL`&;!zmCDN4Tz9X8rc!!4v$Q8P)AuHh=ermfZNGDdp`gO!%!4nbI+=B>Yosd?u4W~m4o ax#7R`;Msian_}#r6Xjo!29#l^1polnp1#@u delta 839 zcmV-N1GxOB2kHg~ABzYG3`^jV2Qq)#Zrer>m7P0XrOmz9bn9NiI3_7lQk*cdQq_?i zL$NGKGQbzZpvaY$Fty7e*G?2bK>MKdrTwh_S7&88vVkOzdExHPIXgTvXUIPn_aUe2 z-cl}?8&K(oVH)wifCb&tR49_{sAmRZ2#bwYkcr@sO0Bkeu-ELg>KhtdIE{aGb~hRa zoo>5c+tJ{ngiB+%ybo7&{miB9X1%MyRd%tF^Duc1u6fsSv7b6-v0ysoqG{U>XpPo8 zSd#FC&ZboM0ag+6igjJWmsG-6x_1Q`f#9455^k`i3EUjRt)_(ACs0Ot=*KbK2@V1g z(je0)R~rrPdjBH6RqqmuyzGB=Tb6CwdF`dhq)X=2=e1f8&;(;E*2?L@sH+?iA0YE> zl&q4F_G4etytZ+oBof>uhmkb1jrbE3JxNn z{V|d>+uqe+`QcyiGrQ{zkaJodDHd$9BaUfES~MN{9QDMbscMN^Bc^;HnM+X2D-rl7 zWiTm|%(bj}PptEG2C>NKRQ@jvHUHX%-x|5*-|(O(LDv}$)HT!~dRa0uMLK|ojTXDW za8g#r@Ms@a&%6DkY&w5-$#hC3({|RtP;Q$NEMG!FXE&HR0ecJ%_M@n?J6Pa9A9eBl zD?hJ^CDny;8y-(!Z46IP=~JEEXXuhUhG$F}Q$gMTEu1sPnHkfi!$hQh8YyEsG(D!N zOZXt-Z}Qp;l;@Jp5nm<9uO%sQ3icW)6x_1yIt8+|)18~y9VLHAmh_FZm>kA);ML4! zyIlHst)KLN+Su9ib#xfvKzPPx>JO>0o2XkEs;uqQciY=r+f4XdN0PGh-zy^6;V|y^}}jKMlz;V)wWG>#KVep5~x^H7->Bbj!171 zh*+fS%dc4^>9RM92PlK4)e5uE-o{hKnnCIvNSK|btv`!dD)V$RQv~bE@M;^LPsjdu R9QztI{|8^n;rn0(004ZTp)ddd diff --git a/tests/vcrtapes/test_requests.test_cookie_jar.vcr b/tests/vcrtapes/test_requests.test_cookie_jar.vcr index b3871d195a2b68e8fcd98647c810299c428822f4..663d9f2025d310a3746be848f299d8cd4b266aa7 100644 GIT binary patch delta 783 zcmV+q1MvLl1*ZlFABzYGex2u$2PS`#{cqDo7{@~gg&j3)Fvi|@%LYqJ?f4ugewijM zE8#^MZPfjb{n;r=A)`R+94zRQ2P;M2fM z;6f|9ihX86#Ys}hd|JTTs+1~KPGoKs)eJru?(@3fM?#VQgYnbd!~MYyfs3cL!@Zs1 z_;7SE=szKFNx}LOEk2+PW3*ofRc3jf<@exYjoeUh^9(WGB6#7= z0uMgX&@Ba@z6)Z^L(qrY8v0DZ=l?V0qLq&2cdc$0zR=8<3ch-0BL^pQI`FlIzESY) ze<5aj+O}i&ES~|@(02-&Lc#Z~=rRJl$aBFJ{E%*(z?~)B-Bs}8N~(WFp2S%OEk5Q2 z?sZK>u3rdjM*pDxa4@26UKB@C)b!D4wBKeHGsvT&Rv|sNy#{$&i^}ZJM2ly@u@rFi*f*LK|ncThSF%U&KdZ zDl-8rTEow30?r9^mf-TSEXc15CF;j}1iG7lK`-5m?p|m#PA8|1ZPUHs`^_DS>R41b z*gTiKsPZht_lM*M~f2SxGXct zW4%cG_qxbe`P8+kv8u?-ewGz4&Am#_B-+?|kG@lh1e?k@t1+}{F3#5ZP2@9`hSUuV z@=V4d)gvB@*}T$W{y`{hzTNv~NcATc&c}|`CMMrRWl5F` delta 720 zcmV;>0x$ii2IvI`ABzYG5li5a2PS`!T~pIQ6ovz$z(Vo+`)jR=p^|NqHf_j^7qwPk zDs6`rCpSzdq)QVUlAL6VQ=QJ}1^9FPi|$ewaFmP8=A85Fd(L_H$Mh~pvTQF%lGLZn z>Gcvn+>c;tlJXdf_xzAVNgt-`EjNwa0cEK2vAfe~w`x@cSI%@`X#Ajamo6oHtXKY_2ZByuHW|qe%2(ftUs{3_$hPF)T1xl)V$sn?IRE zFA!ZLl|7-?WG$;GfPD0-EIr&4uiY@ zQU!ynsYENNa8FS889ewerHOyfFyWz~9x-@)iI&b!6P^g_DT8N!Q<_;MWlj`LqLnpx zE-1|41!a(x?O9H^Q5aH}!Ao!92wsihb%Vk3q?FRI=L7+~al3BRqi%|5D1H#g_HSNa zuXS+VjiP~1Q@qjXwDKC!GH4@8nT0RBaRyafm&QDq%jeDlr6#oeuy23i{x?5f#XY(o zIE-dcbuy73g%%!A8Y@oVAM*T8N)x5hry&=LN6d>tC802+DNFM@w~MIau9(Kc%t_g( zJDKg>Xn2r883Zf#H9j?O;)fdKj^XV#tR8_f2EupF%k~_v9ykNK?*|lAdzy#I9%x6P zkD=gp{Rq7uF`8~R5fpz{euCl2_VSb@oo$YFRmIKvDj<+zC4Qezo_pTMez))n8m;I- zqtWn^3F)PF;JQIfoi6S4Xv%^hNgNV5EDn4U#}hXRJiA9Hp3izoCvY4$=%#-?e?pQ8 zoM=U7mCuyPI86mFCM7H!j4~;!gcnvRrf_n&N$Zl%m_+?Y;}`4On}an3KOD`rH`a#Z z?a|ht{~W<735#<${R+;sTA%&t>H1)V;K%ILa4}Nu4M5R3^+o)Sz1Qi$f06JO%o2SwmMOT>UCgM@4ZhziV~7a7{DUCEWO?k)t+qT=-2xHzoZ3 zB}8mb$9C+Vk{rBNHu>e(m2ndMaQ&E z8Lbg3^bZ8f(SJ&RJQ(3NEz22aHGVQ0ZMKO;4D_U|Wr#m}yaswvGhz0ptWZL=C$q9J z1%n+{%ew7Y#IbF^0}IIgOk z(^wzU{--XBgNo|f)R-u9v!CbXYjZ>JDOWL8zN4=RmMT*o=XHps*kQ-#JY&UFW+Co6 z271Zk5bG6p*>p$fGT$PMn}*jWDvVItu^ Pv;GHuKg?Kh1ONd5(!P1@ delta 720 zcmV;>0x$ig2IU0@ABzYG7faxg2P1!xTTk0S5QPn;Toyv__uDqTnG|nqCr*r|KBQ?1 zC?$zVsQiK=<1Dco*Y?;O5UnD$577V9U)Ws|1Xas}W$(iyOCDqKo*$AZ>BDrr<))E4pbS+$c6S=>R;`NQ%2}=5tk%2j&USyTvV~xV z!PODW?!ufbU%0f{sC5v`doy*(=IRnG*h~Cn6p3Ce5Yr%r0jSPJ;w<*3Pb8Lc;PJ`!^;u8YA|>`ZlyHrIY9t#+^!q-sGA}hiVp;`{hRmK zYaN_-qiEpM6mN7ot-MCG4BCiNX5kC}ID;y#OJiQl<#T5Tr6#oeuy23i{x?5f#XY(o zIE-dcb-a-ug%%!A8Y@oVAMpB4N)x5hry&=LkC+#QN%7eH%h|1wnoY# zv=7|6h1d z5L{^|UL~nOG$g51feg|DVNxP#B*>@;yf7%Bh=7b)>zqIK4!B(XeEC$l_nu+zyZ5;* z;SYr{rRjQDSQu;3*;33pmgV#rHm!x#u{>`}=XII3G@YJL<80bAK0TG!YEyso=1eo2 zlEUdSQh6I^wx*aloi0t-r!+-Vo+@7AtX7ZRX>$qTN>eN?iM*%IZsFB-k6l#r)>4c+L!Ez_re@RA)v00qD{m1Q-nsk12=S&x+W#ZZsLHYdXL2kS-Yu!}c5B<6RR%>>quqU3VdZTOPU3&;8x$8c7v;>2?{Mrcr$O?bXu*Vq)5(`6H4A=P~^Bd zOEs^$;c9S6{C665*&(bdt6g-vMEmzP?M{c?$!95c>pHm_{_1y1ReO|H>a?t0rA<|7 z^+q<;pv^R}x_j#S8pj^gy=2A)H*ZjIZnwj3;dWDM_O^{4&MAM|h~9sQvsBkQpYYay zLVxB|&fMiZ4b=G0gv*(m#Ir$>@3CK2X!V54quA|A@uMHbAGeJ^GjDOY#68kEIdd9% zcA4G%$r<8E&Okd1V~-O?OJkuE*P7vF_H_sr!T@Z*YJR`lb(Q`*bdXM zgsm97j{P`|bI^Z-1GjMmJ8%s@9YsI3xM}$d`mc%j?m+`iX-jasj!Jali$@S@Xi5XW zD8d%*;AdQ-90Rxsq35s&A=t*(u#T%R1z%yS5kt5EgBXf`1S8o0YeFJ!;sT|44O4{) zHBp83c13`5X1e&l@8AtWHu}hl( zUHApoVOi;d(Ob>Au#7_|YN0m^d*KZR@^A^f&<~w38~Z!XhvRq^rR&A6Yy+<1yd@dB zGb_*sopNl)=|l|TE9{3&YQbyFd~g|N@NEnRVH5%>xO6!ehtgq{k5J-Db2_2?3S)F~ z6~|zy0s4O^zB4mNSDmKggRx8WO$Td?(u`#7#k zgmr(;`GDYz!i1$5h7Z=kjzyDF zM@SA0=-;0dc@3xj`U~eOz>Du-9Q}XMmWq2i@IFc;d%T9XI2Nxo!YAr$B;{zmfWxO~ z+H{;ub{xSkQPACZEfEmNApTeL@hi2uatJ>-&*3DCLof?HxlhpxTkt+n zk&KJ^M+w+_=xDl@2Hu)__(t|@D|>bx{2G`;Z*eu*YXiR=!GV)75sPc#W*Cfnh7&qi zxk7Yoz}!i?(P0|ElejA2>GOpk_kNz{b zXu=Rpy|(8Bc?Acb(*r=74edP&5n=EtL%NDV#qO)1-Fu(URMVq;woEuz6jt0NoHt9t P@4WiI%DS=8kO=?)s2JIr delta 1947 zcmV;M2W0sE52z0ZABzYGAWPtp2PJf;!@c=(M6kWF{*J7;!;~3^Il- zVjhavBpql7opicE5gBj+hFugShy)3;1O-6_R2Vp?>W{sO9M3#oa{46q-mbde_tjVT zwnbD(VQRH4HY_ZxnpZf7!z+kRw-m0n?WQT2_cjW4UMqM7S<5>bq=6sE!P}CvCDpDM$NGi20ie9k0MUl5FQhZHpyR@rC+HFy! zJ=;q%FFH7vOZwSfX?Ht#yUc&^V(1Se?X@k^dY;+J>YNT)yesSYMqX5O1|6kSyh2rj z;`YkyA69FT&Y(4@m_OXIVq*WFwu;HI+j$SIr0Pab`CW2UPVyo{9p5Ivq?{skr zuVOB5LlxYjiLK*#kA`yzjWmCq@@jIb34n?9G$}Q1QRC&M23}TVol$>lNYm<7jEa#G zY&!`wr4mGgw68TwXmLa4L z!PGbe+2fXlZ7PE35=4LgEF0Qa+k&CoqaV zB8(O7h7Me7g6{JdVfrcz!&jI~Fk@gpw&7%1JidWd2ng9eQyU=P`hfaXS4^?88kOeS{HsPtOF6HsK3y z;Hm{@u^R^P8Ge7D?{i$Q#Ld!sb@4Z?;KK!6g9#Z1Qm^lZ$?PP;l2Nn+2oVb?7LqF-`CuC!|cn4?q9)>{) zUgPVtRKR}`SMu3x37$s7kPQM39P`4<3S7sLB%H}~!3-aZ>oCO??tl$^0>M^JjRE*@ z6g%LR0RH5N(+NCm!O9UryVB@{Iq)UMLjdOq|1x&t8+=ECeon6nhXI=SO3w@d3Sxk_ zV0%1nz?cAY-V|)Ba+WCv^!S$C)sam6M{(d-;}w591w4U(G4`*6)x>i6-hZ$Q1`|)- zg;&sZ97koc#9Qd!3m=Z$AYHfaMm8qn1oWRFr>$U*x0&|$l{zVOTnDe>a2h9S3EDa_ ze+vs0_fO#_4}PPiHpOz-M?3Ur)mG(EP5Qt}DkXp^Z9d zEDeG&k@@vJEMm957#0+qBQxMz>`8=wS_sEHy!4O>$FJb9y#W_=H1+wnjFT{Rj(oNV z-RAs#I7~9HkTa(q;M(!4F*qh-4-ApNshfY+$+v4!Iqhk`y@Me671EioIChBmw7zb!XzJO)5 z21avmAnhgw%PdR+%-^WRcZXtNBa7bX$M!qW7YVD;_$BOkWo|4NVadawnM(f%AHz#r z)>h$11CC{Rq4OpT!7~^>MF^K@=Q)4q#=v=eg-b_pC_NRIaIqLR_mD&0XCzVZGWaqG zz>~``xBnQmKpS>lR8r^wnk|MUV+u#!30yD>C$GR9Id~F3P}APRcIvxcd=!Je9O%Nw zHFdeyDsYh+&~G^|!ei*WuU2kgZ)|P27X$StxL9Hw#1&bFPpZt!+eOe_>ZN~rJ~O$< zIdm%hR#^;vdl+1XudMS7K0HUN1c}}v4i#P}wR#GBhWy7zu{sJ!f?ycgU|_2 z@I5>SU$N!frMxp2a0|wP diff --git a/tests/vcrtapes/test_requests.test_get_obspy_example.vcr b/tests/vcrtapes/test_requests.test_get_obspy_example.vcr index f50d4adb86e8a01bf4718cf9f3c24036b53c2cd3..4b9a44aa2bfcf24c5f11e9b3ee1d23d5740ce022 100644 GIT binary patch delta 1723 zcmV;s21NP54AczIi8^P6yZ`R;@rc=ioKg~G!6TB))!KP$ikLtCXhTU@VHSLX}M0z63J z$TmE54IWOV#+;T)^Hl*JX@5OfJYpgx0fPA`UZ!%HtgL3Ts+y6rIvhn(2*)TS@AcIL zc$7Q0gp~ObI%X|NHnPf;p=Pz3p(~PPG^Ctj*t%6SRH988x+-h%7zQjRiU|sjQ+R?< zcrs-^gzmQIy2Pe%ymhP(U)zSSmnfVV)uc;^Zxf%wQ)jl}>1}vs;C~cs)UI=Mt4YR6cRGY`^x>O*c-B0E5+?{Yh!0{6vb_zL`n@>9bLJtm ztX1Io5MJoRi{|5aivcXxdDo)O9_L$T63tf#eK`>4UEA+z%y-g!5lxa((Dl5Q zn^B~KtY>GWS$$5^rMxO>vvV`jg09SIAeoP#)b;2LX?Q*X*?b!BU$tCO)F!fzkdK@s?`uGBULpn%;x6im|!i0?@+jEK7cdj*~$u-<_kD%QQ9>oC$RwC zjN{VumXc{>DahcZ@|mPiux-+% z>3N=x<2DVk`L5GFFV;z;ZBa6uH^j4(XOqJ0V1vSzG{hT(bkkNFSxF%&fE8~g=;OFD z)IzXVp?}^7vJDN~#G0wNqdL|N(s0@YTJgr>*TCt+^=-IeuRESF)58KRl?7;@`2aet zx6KG64oiXUCW+-@Qm7Cg`^XU8rsHlUg*i;p5Ep#syeR1+@6os~Wz~@K#-Kstv?&%U zUF~&IY<0VB$By?eTz^VvI-owWI{UgS#BI`+A%Dt}l1&O%tbnGMu{sTh)D7_}sUvGj zT()|grHHa@J%#7bd#zP!4$xK!ek<0{?N@o#AV z+t-P`XPnsk@}p8Mi2PVsE6py>m#{zZA1u62%UMOu{qL`@iG$;y`3%FigZ-tav)k-Pl{>fubMtnA`g#J0|^#TcgjnQ1R3dbybT#<53nl z>6aLneQ$_*i=!~obo7fYocxo9vS^3>mVLtRB&WFl>oM#PJS_YEK5Z?g?ZmVXIe#q* zwHSw)MjvPz`d+-wd0%ke$3tEj2k&vqmxyCO=Q#FfwiErH-C2)u?{VCb)13CxecEL{ z^x_J}g1fGo1A4kaQ6TZ*tN{NYXe7+!p>GdaKYaCQ3H} RY7~5u`6q+~&<;2a006YAVk`gv delta 1574 zcmV+>2HE-44ZsWrABzYGg<6pYFMscE+e8@0(`{_SU4U&+_6smDpc_kSCvCEMur6)W zuIrkVCS`^(isM{TZ;749zHH4h`t=>?B8x_~R(~O0)G2ti zM$~c3uwnXkkLfw)c|xVs`21WZHW9ncuHaHknV@Z$@Yrwa5p3*wuvHP1vJvMv3Klb>hNa0WzJsP2GlwuutEBp1B-6FctpPsUon7T zTbB%Kt#V{NjP6r}KIO@2+jJW>3Xl5mSQ8%qb4vU5J%5(UsXAS7Tz`u;WIYZ~`0!*C zp1KUJwPEHSV&K5kMtvJ!D{(EOlBrh9k(j1SLInAJDoNOm+g13CS1G#4nXX#)dTfLheDX=E`Ttzaog>rnEU z1CVdRoXFcWCPj;Q@O<}V-i+%`KHUVpPT_^sCM9+eD+Di^^QKcIrYE5o4GGTZpWygJ zIxi3K3Pe4_lz&g;^D_f#R1Hff9FJ=9U$-DE&0#M@Qe|S}c&&jgWJmB|*Le{KVo^07 zRl-urG)av{(i~;kWlb($vTBFqA}Li2O4{R^d~o1kSQ>48e6Za#`8*-Dh*7aFpeQWC zOX4$ub1Ykhvp&2$3-e8QWeE)YKo$B$w^WVuq-0eHn1AA<;TE9S1hNDrbKY{Kkp?bq zGAlv(!0WKEa7GU>Vtbj`N{XDF3QIZSVvlIDUAFASur!8AYVx>i9g>x#%==IDoN`2q z#Whvo%_q{PScFKvQA4p&t5qyhe4B7@DWMUMy2Pli=}r;5Ocyj+RpPO*bjt8(WE!he zvPe;rPk)mlvJT7BMuW5BvZ`uBF>Nr>VcoGrdSu+irjKN6e9Y72TxvRPR%<#eP z6xTGi#9kZbH@4C; zgB!;KfAt=cQ=w4s@yH*X|KHcS=YwC_?f5?%lYjk;ogZArX5jtNeerGzE(h-fEBLee zEZ)Jl-m~X#X#eeJ&*~a`R)6`G%co?1jn8F9C(;@05Bwhq-y>=)J~;H>KcACZ*Lveo zhNpx5*hsQ#?6*CQKDNSE_Ga0NyXduAkF8X>$!>A)HZFKkXxWz+*@r{yI=&oxy3scr zynnSfJKR|GMAr^mXt3|l(}P3DxrY71uJ*87?6#Pl;DLeWnHh(XR#;e@(3*y)(9LIiO%fUD7*1W*I%5j_b zaoR^~v=iKPL=Inb7!|DGeRjJy$(A{by^XM)`!MpgHY}mW^qpWeJv9h62PGPdqI)o_+`GS9h z`ieb;R7KaQshK6@I80~E6$yV=Pnj$)LzQZrYep5WWyp02H%^iK9|RwKsmbAH2Hlcy z`z(l3j-UZ|GU%>^d;bM0W0aC+RJ2M3?q|#c2@lUSVptg~!J`a%EaAz&5Y>4Wo9R`} zpg=O{sf1@j!t;VXj({6Sk#Hrv@TU&oj#FuozfL%>Y^EYnYdsO6(BGGS9I1(bfk-7T z)@Vu7^GeNiMPI7*Y?mPFS)}(h=+6;PbVEmq6Wt=S#o4^Fa2z~{Ba7?^(N~=?*h46< zz^pxn@o-HLQFwC*bL)Sg9)LE4A{M6?>;OtbD7)K1ti0cs zB3)@JP?`A-Re#3*h0IBPBrCSrI6uOMNcKd6@dr`h#z|Df%f++4e84g+vX}&OMCYW| zPtb~TLd%wJT8xpU)%KCA#5Sqz{XW7{e33<8?uPTk^_?UY^6geYc2(oJ8)>R$coK(d zEezw&YBLFX0mhjkR0`t``Ach Y9n3~^^ zL@Q8@QNy5S39>1&gmC#3$qIz2M#^YviJAyO);}b4M7x5$_xgN zQ;Hxw;RsJ9wlgzGru`2m0gz)L@}4oom`Y^D(8QPeT($J`hykH z<-Nc`o|P(-rTi$g$R6hd#R>caQQuB@td#pa6hebT^rBFSIShG%Vgr#FRkKo7f@OO~ ztS6-WkU{PkUT?w55hx>|!dzaq=R|kk+2cJw;Go)5;u`M)I|6M41-Iiz(z`?C$woth z;_`RUJ=y*xm=k{_HQRrvoxf&_#|JzXu7;uSMsb*DtJFwyc`w{qq%{mzh^mqDAQn>0 zAgXHV%qkYi+GcyKio&7NJ{$-b`4`N4xF5VBuII!F$G1c5Ddr@^BvDd4jsm3|1kq=u z5&L~#tdl#ZUx|5Fi2F{E2<>>tPv?E)VIMt1>Ipl2$q=gpOz6MaoCxEAVmHixS%@Da=^o+x`FcZg2PQeqVVC6~(<*sZ_Yn zMvO6klGvA=M)!iEmcegu_ z30xMiI)f`u;i{r61wGu^9ujyXyxd)NarO!j_d5PDyP;WzW;AS#Sq!dq`!8TkKvfA( z(2%%mNHukhwY9d1oCVh<^QM1*w-$`d*FcqNmZjM(cv~Vj1iZ6As;3D4@MCQY-j&dM z0^Yv}V$4F&hMN-lK){DDCDg!FOwDd;%_e*#nU4j0a^XY5Eev7hA8t`%K34W$KbfdmeC0k|AQJOe(pYu%h;^=^%_yw+_ zKH|wlgbp>#g>QJ2afg3;Sr$jWCqwJMs)vV%>Nw4xsna|zw-!`MmB5C(ird45qlCdX zFJN;Q)ML_bLWF z^Y-~TiaA*B3Yz%{>|Bfcc=51D;M?^-;5%I7FNA;2DoYJrr@ij0H$UL{ z0nf2;(ejaU7-J+c=$Elb_S;NuWj$zZE9uNPkOurOqQr5pH zREgzjtajo!Jyd&nG>I^cjaTSfIS+8s$cqbyihO!OiyEzFmHZre4wZX6;FD=CTkxDv zTJ!QrQFG|?*(QILX5a}A&04KAWgVAg*+^;P7%kZv376d|LrS+XcN;Zyo<@h<3wT~E zCMXY_Wbw$&<6kv+U a`(3!(t?c{>_eKIbT>A(AD?DUs1^@t}mfQ#c delta 895 zcmV-_1AzS12b~88ABzYGDofyz2Q7aneNgK1OnK%o(5fLiNhixz1*Mn}XvZ}6#4e*Z zos1$~BoS58O6P>o@eI63`C@zsJ`Q_UVmqXP7aHB}{&w$f|9AKM$`fd)s<+x`G$Jni zFf5a7FNc?ES1d%an`AUEBUtGVgDMa9xlnpP>^$BY4L3Iwc=^;f8f^4;M&p0&&E6vg zE(v&L3YVY26;)kIdbqVYR^V!Uso(IhdIPR`*YRh!DQjEQv8io?(jPvDRRP!4cm~GT zW-DP9WhU)*snda`L~aOpb%8VyF^#Tdn9-q*39m`$bpdZIpc^N1F`JrBhccY)O-a2a z;O+C2Wn(pinwA0YNb075cVB-2RlI?@}N?9CI4n||57kMSfgYkH%o78M7572bUlEO`;7X-XO=bFBDYG|9XQj&i~E{T3iiggn5 zz0?=Hsch8iN%G7k`qR`nLdB7Y^Gqu_On4eQ)pw7t$J56;i?FDJ-I3tc!+`?soj>3!oZ~NqPCHAOVUR)p;s%X)dB98T z=Ojylyv%g-F6~N1zQ?}0WHiaviNQ#(D6y2;C5GYJrfVDI$47tT|7z1ORi4$dRh1^O zGEcQ$n&yYvpiH6!m$7z1e52$c7ES!La)~G>{Jcc%4r?kuC%#MM9uIglDWwF@6hc~l z8C5NpJe#f)X@Vb?i>s(L@Aw&OrV&|Fi=E;nuyEl(5ZjU5h ze1Dd@AvH%Zo1|&&$Y)B+TzpQMWzjaih$lkeQckCJb$w~}+0)QcrV4y5FT}lV_@>|3 V`V;Q&3iy`Oe*o2L(2XSq002Z8xYPgu diff --git a/tests/vcrtapes/test_requests.test_http_post_file.vcr b/tests/vcrtapes/test_requests.test_http_post_file.vcr index 198f5d7355e054be40f3fd4ea639ed2ddbf0847b..ab85d71646837963521483179c17aa3895256289 100644 GIT binary patch delta 1019 zcmVRo%u(87sZtZ(H>yyC%iuMN86k6V-8= zK#gtKO2L=F;AJJUrb!ODa^VI7+6Si}&=2e1^trQ^ZON&FJQR>1&78BdXXotB?+cHi z(f02&8jUEjL&pet=(xJ;gtj}>byFYOU6)&iVNxElp+T7&876lb?RIS=Hgtd2)O91Y zW7C3{+Wt+fGvXqM<0{RE1uRTci4bL&=2}sW;N|{KR2R_!7fSEm{-dqEoy`peUOCV0 zZEy7V_XfM0y@v{16RyP0^yFIt)!Pe$Lfmf4j{Y4+EH$d@k;SY5zjTxF@IT~dY zZuWPc!jgbyJ2|B$iob*`Ti1W6tGOof7~GPa*95#i<4C;*qEur{bGq<`q`WEMtr?|x zM!^q$smtJPNqR@XyH}AYWk_`3JxO|Bzz5F=vQUbtIkslo@S)^E0z(tPBR(Qj$FN@70D0>RI5kF0c7n##shb6Vsc zIpDlhgDgGbr+I<9s6T)4d?XT&P>aoygX5BW@fY#%C@ak=eESqucR@V?Z2}!^o!(B` z$+G_!GF0`&<<7<3O>699Iz7^yvOGBC>#bp$@zxrVKXVBwMqqyv(fy|K;>}bQwbKLz z8@phhfHeUd1$W#24HSDA9B^3`n7@Ew6@qgD?gYGOKP{9Wj&Y+0+X}2L{{i3O`Tj=I zx#z^tb+X-mzAbyaI^q>tI?mImsPYcJH74)MU9{FC_o{T2=#2Er3QJLjwt2einI`%1 z;ow>Sg0jrgD3E`fbbhIee0nqLT9ve_$kbkz6~C(6RXR#h#>#W>jf%%uG!3%aBcd8# zad|9;ZT&e7@EYM6kN9X@$&No!2x$e?sBU@W$z+wtP004TV0_gw% delta 970 zcmV;*12z1X2;~O{ABzYGFH7K&2P=Qca@$4_WfaE?WIFr4jgiH$A}j*}1O!D%7+Hy3 zj7646r+9IxKyV1af&eryR7!ENDmlpchkR4MC+GBVS7enBKCr;H)APsLW2h)f zZ@p5fgpB)xK@q3J3|^VKBF^)EoN8GS!dkN(lv!}ZxYYRR@X>y!y|*jDt8;%}r?uNW z>~s(I8V@D7!r`?sTzw4J6lLYmgZ;g(1lOZ0%}Nj1D{!NC6F;`4nO046ZOyhpYPO%j zI)|G|Gyz68CY6{q&7_*+Xl@;<0&q|%#A=GdL#x&}hOW_RxdXvLjOVF)ZF4NYi zTh~m?_O?L1!{ObFsG5yzhDLvD2D~Rw?{oOzxhN`rwhJE$)JGgXzJ$xfuM3|D)TbOi zJCCBSr8$VOT#Y&uJ{Ks$;WpzSE4^!o2(mO~0f#T5^)vW#3}5YY_<9;DSvv5O1nvZf zK{jAPDX~=ikwEGFi}7}=(WWa`r&skO4oz@d)sYi|&%T+&#PtgCUWQE!YS&BsYDUY&LEf|bg$xGeD zVQI$XEJuL)3rj;Dd4$^5(%C)DnMaOC36FEX;QBBtj@5zB{cY0EM%Za_y3?ma+INSB zVbl$)A6R~$1>=B#N>vH&_O4>{SZ$nA*mwrt9KhxosAJG@bh;AViIm>o zh)~rR)6I*!7neB4c-r<#WvPG6cI084FnODZ&(y(>b1Ms=$7vd*tbOlL%8thNdh}O)$`J zqBE^z^v=!+y;o==<_}o0a&o#d;w)~^lzib`ERqPHTcrhXsfWM>NmibVt#m8mxHA`` zV&)?Da?7)z6;FhqTX`fFvE`Zz#Pb(@WpqM&1g4`TnL0YMiQ?iczWZjardjxO&jcA2 s$vmy6>nqtOZ#?AqJ*R1US1>g5M{J^yT0AO(oFU|%40Hnd+jQ{`u diff --git a/tests/vcrtapes/test_requests.test_https_get.vcr b/tests/vcrtapes/test_requests.test_https_get.vcr index 130f8dbee79dadb1e5c7dc4f4b4e0bda59623165..ffceb867c4af267e1aacab86294fe9d476ff0daa 100644 GIT binary patch delta 11218 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 delta 11095 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 diff --git a/tests/vcrtapes/test_requests.test_redirect_twice.vcr b/tests/vcrtapes/test_requests.test_redirect_twice.vcr index 9c2af4c38b4f79e3101121d5ed0dd50541cc27fc..6e10a5c099270d6c0e48b4dfe137ec45ad933618 100644 GIT binary patch literal 25101 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 A&Hw-a literal 25204 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 bexW%7sJ1O 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 diff --git a/tests/vcrtapes/test_requests.test_sessions.vcr b/tests/vcrtapes/test_requests.test_sessions.vcr index f3c5d592c7e267ecdd2eeca3d53c137fe5551128..c82b7f72478ad2ac9fbb7a35366209486b0a9d41 100644 GIT binary patch delta 1112 zcmV-e1gHD724%J_uDbOVb{7N1Tv<kKI~Z98=RK>$nhki*!x@A^Uz4&jwr%ZdVPL>X7wIqEhJTh%fLuP$PT z&2sJNu+y%V4mh~UV0j9+9>MK&`qE4LjcSL3*PNTRE5k)&4KSzi@}%9${Bn$g|8b7zL|fgBI?_w=Rw*! zvI3i05l8*_hJ&@GAHo)kivvUED{yuT#%An$+GB}@zwbAu0J%$@E3QyL2Nqk zOhy-ZgRG0|Nv=Gf2pfMf$cWN0Z+h+tf|4Ap_m;75e8=@=`1Ubuw1GbZVG1HnEv0+6 zF?(!|=)ms%z_9>&$ev<=j?RUsJYrRzjE#@Ptq>!Cvw^6yi zi$fZo&=4n>_^uU%zKC+rV`?fmi9vQkcY{beDUCy-NU~1kj3IwZhAflagU+lfL#Fu7 z=@`L`{>(&&9ebO^a?B7{ur*-=K6inuQ-8=DgP#qBV@JbN(6Gwa)W zy1q@)GMTd_&S{P!J}w>x9$)gj;3vKrxfb#C)C5 z;UtVVQ&_Du%bkCRttx8epiWxd?fQP1q4P&Bkfi@Sno76n4~2gDB;u{?j*8WHAD;<^4v0Np{g<=T+1 zB^rN#(PyxkcG4)Hzn=5azr-tlBZ--r3h_)^Z780>cT>2B4l1P`*+I8#PoeC@2C3kL z{EbTnQ6z~pYcJg$*{j@Pj>ou#nc~GCqriW8`hDJATJ|bU|H=`PTIj?e@goMFVHCru zr=+G3Fy%<598_asciON!6U!coW&b}fmha=4YHg^W!NC+7D3<2ASXxu~VJ4RLKO+`J e`Cp0UFebLshVD!(_faelsPF`-0=h-V2><}n2PaKcnGT; zZprS9bZ^d55s;y#(`sf5;sUwN;k6~QjAM#e*)+T^pf@@NgX~A)Q22Cx|A}+NoC+;L4CsE(Mcg76 zrXQCIjzdRiT-VkY7o{xT;{^kY41V!O8>C13zRhV|D$cXTmsn&-=}57C?+opoh=xjG zKm!akI_EA6l#s%hMm*9?Y>}$RrMLulyVo#p4CMs|tUrXWo3JqjWdbTzt;yXR=smTE zwD0*8^zI5?!xJ#3U`~G^=^T4Z+CAqqI;=~udG~inxpH?6p+$Wpshec4-l>&doN0@O zXEemZ#)0RsFwk&1Y0;Vz7HE;yIM^TsHFNk|xw*ep2e8H}Ej#`V0KUkoGVY&-NqCI2>aS?s>LFM8D4HU>u6c z zMmo)^MRGQAL)za-EE<@|FP?ImomUAt?2~|T;`p93B;2LM_ky7cTP~_C-GodfR{I08 zCmbxzO_Jm+Z>lNMg23+oGmi6LzMMpTIY`LEnGMuI}Qt6eh6iiUlcRh02u+ z3u5XzsaIb5cBC)c4tq4hDa;hF{TQ*}<>~j??MiK3rs-cLLJ|v|SVUaW@Ki_9oOsgI z1OgLjB0)(sw%mlhnOOEwEC>I2u^ft;zH35d3e^c5p;&5<#ZsR@Vx_8hc=(C9X@|}c zGZr$8qB6;ja#)+WVkwJJk{Nk9hBy0ryvq5pkfeM6@X6p{ueU?st-0@Dcc*`NFx>BT z9}~DHVSNhMpTUhrW96ksgWiz9+wryjdVtw$K!Oc?I4y&o@wa2*MrXPMv6e#rAk@QQzkO#LCS8T^Cs z2fZO}#v+VFS<#2X;a<}+ER8(OE9ujf8EfQ8B}%)vVx*DcN zx}1wb>OEB=$;Lh%pC!dMjl@wJN->Z7bgQ|gk)7GClRWe3u@HqGrpXCHzw1({>av_H zEH*d06Rcb&XW{IW^t82v3g7Dq`czzWvTEJwi3!Ja~kA0|1ucZy{n?GkV{|AKbB84!f#`cP(?bhm$X z3kRY+5hb=i$r7HISrhlgRl5F+GWhg$RF+GvmT!NVK6B}V$HR-P5@pth zrv<`cQKSjK=(qX2%Cnh@Ri!Je%u~Iaruhqfw@k(fUSsQu_)aMzOqzsgHP>=p=NFNU zW$aVtwl(r=68cp2cp}D=QmOd|p|t*LMe06PCOT%LM7xf|tZ&m*?_vQ|_&+PK1Xt&% zu-7NKV3#T@kf%O*walXyRe4udbrD-`tRgPo*##WvLorLG#QC3_E&S-6k|_Z<#|X_8V>@~vV8rcxMM zocMuZLb^07G091`C^((b59lxS|9F<#i;6SJB8`8u`@IaPJ1bGclb39r>k zd9)Y9nO-UoBH87U9;a;>t8MsM?C&!{DsOhS>Wz)+5`nY*Tw{Hyw$o^CRx5vN1jYrN z>%#eMm{8S`MXU8{lfYy!Udy?to`We@!H-qc@iDD3zC|Fljqflm;DQ>QkipbRD-tqw z+t$kqph)DRfJ;MUsAEa3MH?#rV%9L-Z4EH7VK)}NxbwN_7v8XR%bMrPlk_;8_ zmmv;ZLz)36HFmX zy^eSsIdq?~MDs#^fcdSArCO!UA{0svMG!|?%AmtCkrgboK{pigSrbg|F47L`M^-6|=V4TN+$j{Ny>|icr`H#sMf}{5+v43xJ zzz$uOpdZHBP)81`%#Muepf(&fNt`}z1K8D?tS2SS`73P=@|f+CE`fyr$I9M>axGW? U0gJl=9H##QrXdCZ>oElY09E9KUH||9 diff --git a/tests/vcrtapes/test_socket.test_arclink.vcr b/tests/vcrtapes/test_socket.test_arclink.vcr index 83c1228e27fc42507c9b8fd3b2de6ccc06b5238d..3f68be063555e4f2f067530aa7a62047fd646667 100644 GIT binary patch delta 265 zcmV+k0rvjl0iXg0ABzYG*q!H*2O)pW%}>HW5C!mxNTFK4KW>I&y)?U9O1C#Xh$a?| zoHi!Lw6oJdG)o3nJT>tGf48gN=DnBv=DYPuUZk!)&qK(itTkrHlVmXDmDZ^1GMA!E zhgGGyNCuKgS=LMlo|ajjWL(w^k{SdKtGd^&a9*@Vt5 PU10nJ0wP2P4gmlFRE&c3 delta 203 zcmV;+05t!g0^$J&ABzYGWJ}-xc0y9Qtu8?(^ zssEdh5iGvtmq_p%74jP>>>o85hT+1Y$g!+$=bbvr0Q8Og3WWqtjN;T%DE&L7tKbim zXT(fUiBUb+tfkk%m4`=pYCi(6+jhHt(D(daujA11XszYiL38yL8VXI}eE@2J=-0;p F005=XV>|!= diff --git a/tests/vcrtapes/test_socket.test_seedlink.vcr b/tests/vcrtapes/test_socket.test_seedlink.vcr index 900b151348ea3663ce1d5ee690ab0702115f8382..5e314f838044dae279000cdc7196aa3da971240b 100644 GIT binary patch delta 278 zcmV+x0qOqv0j>fDABzYG*qxCEBY(|HPr^VH1>lNErHXHKOI+23&2-uh?amEoVxa~% zvoU5~1%gh!cEZA>i5vLcj=H<&QyVVtEUi$j@6oN_?~i&&%> z=NxfNN`{EUSY{$&LqhB_B~qX)Dlvy0pSso&mDWlaXwkk+b5)g<4(8?8?SDsQYRTRM zsbF{VG~Pmc1A7g0rUqP}w(Yo9TEf0~6_r$?_LTlTJm~(p52HLUdLDSRW78WmOC7?& z77l07+rUu+$B(XolYi+`i8Y)~9Q)#|f%8R|UfcFrDVZK6-3_GfTu;7SEQaR)K8mmdKD06AxZhX4Qo delta 224 zcmV<603ZLZ0{H<3ABzYGZh4UgBY(_IPXaL*1mKD*3)RIBz%%i*9&A`N@fUz3EUdvx zFNBcx+X}at$>jO1%)sJUhKw;~jUnZ5CfmNP$S$oBtL4wrmvy;b z?1Uy%#_xjz&PxOZE+!7uSO)%_lhFv(Tv<&j=Vbl^NA2hi`)Qg*9CcasZBe^$8BXJ;n(PIF;_$00001`EGCk diff --git a/tests/vcrtapes/test_telnetlib.test_arclink.vcr b/tests/vcrtapes/test_telnetlib.test_arclink.vcr index 17009cc20ab40cd92133887ad7e6961438b2958e..43ba184f3538a1c3a5ba48a8842d54ee20348769 100644 GIT binary patch delta 468 zcmV;_0W1Eu1MUL{ABzYG*q!H*2PS`S(?Ae~O$ljn2$Ysmt|d?|E*IlVY{zenPy&(D zL~>HeLaHKry{V%Hn-gz~`e2Ed^mj8(LE>$9&Nttg-)kq3l;BX3q-o3IEObq-IZou- zQ`a`9QLE(|wi%kOsHum%$(mu)j+yI3kv+Awh-llfTuaj<12>eQMxIkH!Z?3k%+hIw zH6_@f(JvmwOy%dedE|FJiRBqP<3b({zj%|;*zdHDWK;xh6{wzIUHO-{yOZ9aGnTQD zRJ>|HA_=!w9lGhNx}%z^<3c9q6>0)^LV>yxtW(aiH04a-Zc1XcRYLorKr>|EiYkKH966?japCrVJEbivsL zo_fX-&k8(Gwu3zywim2FOV1h?x@t5OL!&!2%Q~pbU%TJQyO)scg^z~7OC{N&r5##2 z9(DYN;JG-=qWtHjnk`O=eO0piK3*^JrodY&ey1d>KBd3`t(Hd&Jt9Qkm*fW@9|b;L zTX!ky4MyYM_;}nK4jSz=OD}(9=Q+`8Nq_dCEuj}M$ZP)fHVat)d+m~Re6$2yuKod4 Ksx-+i0ssI?Xyo|- delta 413 zcmV;O0b>5{1GfVQABzYGWJ}z;U_;=xj1%t>#gmS~(oK{o9S%k# zEX%%(LnRZYbpBvindC?HR;ycJcpA*oZ!|DN?c&)rRt27CSWEGOTrYVrL+Mz_OT6+* z8D6JYk5+* z*hVF0KR!+VTsiUhjM%N5-4@u%@HWLeDt^zSN#BPQoL2KAx*n0cIr&lGlfma3>l#JP zPS0=p$9}Whv1>ZkSHI(ngy=6h?Ff9$P)y;Hw{+_*r}%c?Tgl1q0#yxzAIkX;79-ly H=K%l!W;V`q diff --git a/tests/vcrtapes/test_telnetlib.test_read_until_only_linesep.vcr b/tests/vcrtapes/test_telnetlib.test_read_until_only_linesep.vcr index 9f1253032c6bf0bbd92897a1329576f1e87ddc5e..71367d857c21a9c8945c4cee48841d5ef79e4163 100644 GIT binary patch delta 467 zcmV;^0WAK<1N{RBABzYG*`4Q+2R46i(?Ae~O$ljn2$z;pt|i=EE+)3)r2EzgB@j7H zB*&F3q$;x4>pE(%Iq|lr50-dIe>dY4B;I!CeDj_8y><*m^A8k7u?!K$5fgzaY{6K^ zu#C3RW-VcfmKm{55O6!M_=}e|fh*9gKROijAb= zRDBXDxVh>uET$VB-O@V@DmgDvleiT~)HQ#da-OBB;1ai!+7fpP+#N~WyNYs=M!|fJ zO+MvWBzUfhw0x-8TIJt*!{L9puHwF5rQbY|v(&)$B_6ogS>j=VN91~}`4vhRf}i7w zV=nQuz_Vn_-=$%9!H2W-v~h0eWGA*o delta 413 zcmV;O0b>6B1IGggABzYGWJ}z;U_;=xj1%t>#gmS~(oK{o9S%k# zEX%%(LnRZYbpBvindC?HR;ycJcpA*oZ!|DN?c&)rRt27CSWEGOTrYVrL+Mz_OT6+* z8D6JYk5+* z*hVF0KR!+VTsiUhjM%N5-4@u%@HWLeDt^zSN#BPQoL2KAx*n0cIr&lGlfma3>l#JP zPS0=p$9}Whv1>ZkSHI(ngy=6h?Ff9$P)y;Hw{+_*r}%c?Tgl1q0#yxzAIkX;79-ly H=K%l!u?fzi From 9252b91b7ee16ef5097a18160dc591aa2a164879 Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Fri, 7 Apr 2017 17:42:55 +0200 Subject: [PATCH 13/22] add vcr tape for doctest, see #11 --- ...est_doctest.some_function_with_doctest.vcr | Bin 11191 -> 11311 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/vcrtapes/test_doctest.some_function_with_doctest.vcr b/tests/vcrtapes/test_doctest.some_function_with_doctest.vcr index a535347a2652d4575b8d969cdd5380287056a420..82e958ad2e939ff860faa8daf5d34634c6fe4a19 100644 GIT binary patch delta 11199 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 Date: Fri, 7 Apr 2017 18:03:21 +0200 Subject: [PATCH 14/22] move outgoing traffic normalization helper function used in tests to vcr.utils --- tests/test_doctest.py | 11 +++++-- tests/test_requests.py | 67 +----------------------------------------- vcr/utils.py | 66 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 68 deletions(-) diff --git a/tests/test_doctest.py b/tests/test_doctest.py index 77cb7cb..18d99b0 100644 --- a/tests/test_doctest.py +++ b/tests/test_doctest.py @@ -6,13 +6,20 @@ import requests -from vcr import vcr +from vcr import vcr, VCRSystem +from vcr.utils import _normalize_http_header # monkey patch DocTestCase def runTest(self): # NOQA if '+VCR' in self._dt_test.docstring: - return vcr(self._runTest)() + VCRSystem.outgoing_check_normalizations = [ + _normalize_http_header] + try: + ret = vcr(self._runTest)() + finally: + VCRSystem.outgoing_check_normalizations = [] + return ret return self._runTest() diff --git a/tests/test_requests.py b/tests/test_requests.py index 34721db..cbb5148 100644 --- a/tests/test_requests.py +++ b/tests/test_requests.py @@ -2,78 +2,13 @@ from __future__ import absolute_import, division, print_function import json -import re import tempfile import unittest import requests from vcr import vcr, VCRSystem - - -def _normalize_http_header(name, args, kwargs): - """ - normalize http headers in outgoing traffic: - - Expected: sendall (b'POST /post HTTP/1.1\r\n' - b'Host: httpbin.org\r\n' - b'User-Agent: python-requests/2.13.0\r\n' - b'Accept-Encoding: gzip, deflate\r\n' - b'Accept: */*\r\n' - b'Connection: keep-alive\r\n' - b'Content-Length: 147\r\n' - b'Content-Type: multipart/form-data; ' - b'boundary=45c2c6ddafe3498c94b4554d6fb6e503\r\n\r\n',) {} - Got: sendall (b'POST /post HTTP/1.1\r\n' - b'Host: httpbin.org\r\n' - b'User-Agent: python-requests/2.13.0\r\n' - b'Accept-Encoding: gzip, deflate\r\n' - b'Accept: */*\r\n' - b'Connection: keep-alive\r\n' - b'Content-Length: 147\r\n' - b'Content-Type: multipart/form-data; ' - b'boundary=9ce384e773e444fc9ae202103e971aab\r\n\r\n',) {} - """ - if name != 'sendall': - return name, args, kwargs - if len(args) != 1: - return name, args, kwargs - if b'HTTP' in args[0]: - # sort HTTP headers - # example: - # (b'GET /fdsnws/event/1/contributors HTTP/1.1\r\n' - # b'Host: service.iris.edu\r\nAccept-Encoding: gzip, deflate\r\n' - # b'User-Agent: python-requests/2.13.0\r\nConnection: keep-alive\r\n' - # b'Accept: */*\r\n\r\n') - x = args[0] - x = x.split(b'\r\n') - # two empty items at the end - x = x[:1] + sorted(x[1:-2]) + x[-2:] - x = b'\r\n'.join(x) - args = tuple([x]) - - # normalize user-agent string - pattern = ( - b'User-Agent: python-requests/.*?(\\r\\n)') - repl = b'User-Agent: python-requests/x.x.x\\1' - args = tuple([re.sub(pattern, repl, args[0], count=1)]) - - # normalize 'boundary=...' string - pattern = ( - b'(boundary)=[0-9a-fA-F]{32}((\\r\\n)|(;))') - repl = b'\\1=xxx\\2' - args = tuple([re.sub(pattern, repl, args[0], count=1)]) - elif args[0].startswith(b'--'): - # treat follow-up line with above boundary string.. right now our - # normalization is only aware of the current line.. this should be - # changed, we should normalize on the whole playlist to be able to - # properly handle such matches that appear over multiple lines.. - - # normalize boundary strings on follow-up lines - pattern = b'--[0-9a-fA-F]{32}' - repl = b'--' + b'x' * 32 - args = tuple([re.sub(pattern, repl, args[0])]) - return name, args, kwargs +from vcr.utils import _normalize_http_header class RequestsTestCase(unittest.TestCase): diff --git a/vcr/utils.py b/vcr/utils.py index ce43a75..f08a87d 100644 --- a/vcr/utils.py +++ b/vcr/utils.py @@ -5,6 +5,7 @@ import hashlib import inspect import io +import re import sys import unittest @@ -76,3 +77,68 @@ def get_source_code_sha256(func): source_code = ''.join(inspect.getsourcelines(func)[0][1:]) source_code = source_code.encode('UTF-8') return hashlib.sha256(source_code).hexdigest() + + +def _normalize_http_header(name, args, kwargs): + """ + normalize http headers in outgoing traffic: + + Expected: sendall (b'POST /post HTTP/1.1\r\n' + b'Host: httpbin.org\r\n' + b'User-Agent: python-requests/2.13.0\r\n' + b'Accept-Encoding: gzip, deflate\r\n' + b'Accept: */*\r\n' + b'Connection: keep-alive\r\n' + b'Content-Length: 147\r\n' + b'Content-Type: multipart/form-data; ' + b'boundary=45c2c6ddafe3498c94b4554d6fb6e503\r\n\r\n',) {} + Got: sendall (b'POST /post HTTP/1.1\r\n' + b'Host: httpbin.org\r\n' + b'User-Agent: python-requests/2.13.0\r\n' + b'Accept-Encoding: gzip, deflate\r\n' + b'Accept: */*\r\n' + b'Connection: keep-alive\r\n' + b'Content-Length: 147\r\n' + b'Content-Type: multipart/form-data; ' + b'boundary=9ce384e773e444fc9ae202103e971aab\r\n\r\n',) {} + """ + if name != 'sendall': + return name, args, kwargs + if len(args) != 1: + return name, args, kwargs + if b'HTTP' in args[0]: + # sort HTTP headers + # example: + # (b'GET /fdsnws/event/1/contributors HTTP/1.1\r\n' + # b'Host: service.iris.edu\r\nAccept-Encoding: gzip, deflate\r\n' + # b'User-Agent: python-requests/2.13.0\r\nConnection: keep-alive\r\n' + # b'Accept: */*\r\n\r\n') + x = args[0] + x = x.split(b'\r\n') + # two empty items at the end + x = x[:1] + sorted(x[1:-2]) + x[-2:] + x = b'\r\n'.join(x) + args = tuple([x]) + + # normalize user-agent string + pattern = ( + b'User-Agent: python-requests/.*?(\\r\\n)') + repl = b'User-Agent: python-requests/x.x.x\\1' + args = tuple([re.sub(pattern, repl, args[0], count=1)]) + + # normalize 'boundary=...' string + pattern = ( + b'(boundary)=[0-9a-fA-F]{32}((\\r\\n)|(;))') + repl = b'\\1=xxx\\2' + args = tuple([re.sub(pattern, repl, args[0], count=1)]) + elif args[0].startswith(b'--'): + # treat follow-up line with above boundary string.. right now our + # normalization is only aware of the current line.. this should be + # changed, we should normalize on the whole playlist to be able to + # properly handle such matches that appear over multiple lines.. + + # normalize boundary strings on follow-up lines + pattern = b'--[0-9a-fA-F]{32}' + repl = b'--' + b'x' * 32 + args = tuple([re.sub(pattern, repl, args[0])]) + return name, args, kwargs From f9df86ef8fbb33491e3ec003077ab195a3cf531d Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Fri, 7 Apr 2017 18:08:33 +0200 Subject: [PATCH 15/22] add outgoing traffic normalization function in tests setUp/tearDown --- tests/test_core.py | 5 ++++- tests/test_http_client.py | 10 +++++++++- tests/test_requests.py | 7 +++++++ vcr/core.py | 1 + 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/tests/test_core.py b/tests/test_core.py index ab8bf76..f3ebb81 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -6,7 +6,7 @@ import warnings from vcr import vcr, VCRSystem -from vcr.utils import catch_stdout, skip_if_py2 +from vcr.utils import catch_stdout, skip_if_py2, _normalize_http_header try: # Py2 @@ -27,6 +27,8 @@ def setUp(self): self.path = os.path.join(os.path.dirname(__file__), 'vcrtapes') self.temp_test_vcr = os.path.join(self.path, 'test_core.temp_test.vcr') self.read_test_vcr = os.path.join(self.path, 'test_core.read_test.vcr') + VCRSystem.outgoing_check_normalizations = [ + _normalize_http_header] def tearDown(self): # cleanup temporary files @@ -34,6 +36,7 @@ def tearDown(self): os.remove(self.temp_test_vcr) except OSError: pass + VCRSystem.reset() def test_connectivity(self): # basic network connection test to exclude network issues diff --git a/tests/test_http_client.py b/tests/test_http_client.py index edbf056..1aa9738 100644 --- a/tests/test_http_client.py +++ b/tests/test_http_client.py @@ -3,7 +3,8 @@ import unittest -from vcr import vcr +from vcr import vcr, VCRSystem +from vcr.utils import _normalize_http_header try: # Py3 @@ -19,6 +20,13 @@ class RequestsTestCase(unittest.TestCase): """ Test suite using requests """ + def setUp(self): + VCRSystem.outgoing_check_normalizations = [ + _normalize_http_header] + + def tearDown(self): + VCRSystem.reset() + def test_connectivity(self): # basic network connection test to exclude network issues conn = HTTPSConnection("www.python.org") diff --git a/tests/test_requests.py b/tests/test_requests.py index cbb5148..1a13cbd 100644 --- a/tests/test_requests.py +++ b/tests/test_requests.py @@ -15,6 +15,13 @@ class RequestsTestCase(unittest.TestCase): """ Test suite using requests """ + def setUp(self): + VCRSystem.outgoing_check_normalizations = [ + _normalize_http_header] + + def tearDown(self): + VCRSystem.reset() + def test_connectivity(self): # basic network connection test to exclude network issues r = requests.get('https://www.python.org/') diff --git a/vcr/core.py b/vcr/core.py index ac61532..cc77a1b 100644 --- a/vcr/core.py +++ b/vcr/core.py @@ -164,6 +164,7 @@ def reset(cls): cls.recv_timeout = 5 cls.recv_endmarkers = [] cls.recv_size = None + cls.outgoing_check_normalizations = [] @classmethod def clear_playlist(cls): From 31d6def2ea7349f7ee4ad7751ab35b94532c296e Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Fri, 7 Apr 2017 18:20:57 +0200 Subject: [PATCH 16/22] some more outgoing traffic check normalizations --- vcr/utils.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/vcr/utils.py b/vcr/utils.py index f08a87d..b63b527 100644 --- a/vcr/utils.py +++ b/vcr/utils.py @@ -121,16 +121,19 @@ def _normalize_http_header(name, args, kwargs): args = tuple([x]) # normalize user-agent string - pattern = ( - b'User-Agent: python-requests/.*?(\\r\\n)') - repl = b'User-Agent: python-requests/x.x.x\\1' + pattern = b'User-Agent: .*?(\\r\\n)' + repl = b'User-Agent: xxx\\1' args = tuple([re.sub(pattern, repl, args[0], count=1)]) # normalize 'boundary=...' string - pattern = ( - b'(boundary)=[0-9a-fA-F]{32}((\\r\\n)|(;))') + pattern = b'(boundary)=[0-9a-fA-F]{32}((\\r\\n)|(;))' repl = b'\\1=xxx\\2' args = tuple([re.sub(pattern, repl, args[0], count=1)]) + + # normalize temp filename string + pattern = b'filename=(["\'])([^\\1]*)\\1' + repl = b'filename=\\1xxx\\1' + args = tuple([re.sub(pattern, repl, args[0], count=1)]) elif args[0].startswith(b'--'): # treat follow-up line with above boundary string.. right now our # normalization is only aware of the current line.. this should be From f253ae051d0b9d7c67cd819ad2ac0d5dbabf579d Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Fri, 7 Apr 2017 18:36:25 +0200 Subject: [PATCH 17/22] try to control order of POST payload and REST URLs in tests --- tests/test_http_client.py | 6 +++--- tests/test_requests.py | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/test_http_client.py b/tests/test_http_client.py index 1aa9738..b749a0a 100644 --- a/tests/test_http_client.py +++ b/tests/test_http_client.py @@ -16,7 +16,7 @@ from httplib import HTTPConnection, HTTPSConnection -class RequestsTestCase(unittest.TestCase): +class HTTPClientTestCase(unittest.TestCase): """ Test suite using requests """ @@ -87,8 +87,8 @@ def test_redirect_to_https(self): @vcr def test_http_post(self): - params = urlencode({'@number': 12524, '@type': 'issue', - '@action': 'show'}) + params = urlencode([('@number', 12524), ('@type', 'issue'), + ('@action', 'show')]) headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} conn = HTTPConnection("bugs.python.org") diff --git a/tests/test_requests.py b/tests/test_requests.py index 1a13cbd..495a5ad 100644 --- a/tests/test_requests.py +++ b/tests/test_requests.py @@ -34,7 +34,9 @@ def test_http_get(self): @vcr def test_http_post(self): - payload = dict(key1='value1', key2='value2') + # order of body items can be controlled by using a list of tuples as + # opposed to a dictionary + payload = [('key1', 'value1'), ('key2', 'value2')] r = requests.post('http://httpbin.org/post', data=payload) out = json.loads(r.text) self.assertEqual(out['form'], {'key1': 'value1', 'key2': 'value2'}) From cb63e5f02d582e474ebb90c188278880beb22d06 Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Fri, 7 Apr 2017 18:36:54 +0200 Subject: [PATCH 18/22] update some vcr tapes due to last commit --- .../test_http_client.test_http_post.vcr | Bin 761 -> 759 bytes tests/vcrtapes/test_requests.test_http_post.vcr | Bin 981 -> 978 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/vcrtapes/test_http_client.test_http_post.vcr b/tests/vcrtapes/test_http_client.test_http_post.vcr index d77f72c848237148d8e01e73ff0de58d9cab01c8..aa1a77bb6c3edfa38a6e55c9c1477b539bf70241 100644 GIT binary patch delta 731 zcmV<10wn$U1@{F8ABzYGz`v0ODt}v3(?A%Fh=7X`uXxuL1%uMu+qBU-76f6+rBgCa zUKnPZY?=&Z(=XWyJak4Mz<=RybyJ4X!3W>=yPflW=j`{fJ&+XtlO##hav~CTbR+82 z%&0~z$Eg^^iD)g1s1a5z$EJGCHmkH_)r=@8m+ermb;_Y(SE|%@;ELi;3xAw0CWonvr;cBzhl!81B4k$;vJ1fooU9Y{`*g`PQ;o1-;_Fz&` zE*ctZ`y1P<9)hWOygA_uJPEFksO*Yrt47UH9UV}!bq3QMZd{(LAdri}_`2fX6GJA^ z4cCsUu3;IjX;*dEwcuv4QGZk7FvH;%<#1c^Cq-|NGDZUqcjD<&xI2V<+Z^tnmvYKN z((A!&upgu$4RSfpi$DJFz=6v zFzdj=DZCki66_}_T7N#_G~d`ku(eKhb`U2Yw3WATRsymj$X@>C9FHR z(a*4{8xA%qu2ptL=F65Rqg|SPqnV4BNlr%~x@zIpNO8?nD{AGBh~7xVkuotq?7hc9 zOtPHv`hZ8Js*E<%b8TH5bKZ9~?UH-iNQIFwGWwbj7Z(fvV@$D^5tc_Z`^)4Y9e`T53b7DQ*7*wZlQ9 N>Tf6ypL_%a006@xXomm* delta 733 zcmV<30wVqQ1^ERAABzYGUY(H!Du3B-(?Aq;3luuVl%-I1hC;!G##Up2*${#}4UP#z?ZfwtPTOg1Z|x&E&)~uY7LMSe zB%L;F?R0hzwjBhQ;`5CKm*WYrIHNL5*^o7>DpyrNjph$nVsQEFoQXgz2IED^T`BJL zRLwS`n$2&rb)%-*b{Vb|8-Fzf2Fnbt5(d{K_ag5NQc6j{;Cj3?g&PxCIbd+}q?8jH zdc7Xp3OYd=k|0Nf77qlg?k`?%9=08<;7^XzR5V!=(Wf+LHa;VTh_-@&3|MKq7*1%{ z#z{yhOW0UM?^DY7yR=7Wm&Gt^Ee&BqnIP%7CfH9+610(q^FX5iKFzrV-h7j0_*NP z4>KR0P2u?jq@a_e=zraqk$m?M!N$gSc)^LCIYBrT4wqFO@1#S@Z~5Rce)LY3Y+|*F zw+0#3RjrCO!&YmyUcn#t9TBxj_Jw3Ne&^+62BOMk+?*+{=&~uBe?)XbFS-AG#JDErGh-8169K=I< zT-YNbQx#E*gh|Ff8n0oN;@2LIGZNL;{!6>|=D#hk74MCR)S2rq3xhUWP-+MVKSA~x PC`A4ZDUueC1Oxy8pr~3{ diff --git a/tests/vcrtapes/test_requests.test_http_post.vcr b/tests/vcrtapes/test_requests.test_http_post.vcr index 9edc95f47e3d98e403154750bcd2e62d8b333514..8b43a4756d2933751a4c5f537cd28d4a2be6eb76 100644 GIT binary patch delta 951 zcmV;o14#VU2hs-zABzYGl3M?f2P=PoO`vJH#^s&zRyYh4B}B4xlKdiCS`z~8n8u#i zW%Q+!k)^XGqDornoDe#mfe$Hvj32?zVb4lzw`t+q?e4QLx4UI)_uByvjIrIexo5YyZnl{2o1^iVwV7|Ue4CHis1<*}D~fv+ z<4m~lf*_BQaSCgtDik6cMTwT?6L_`T_lwj&~8v=jcTvE$G4MS@+;4O)~E#RGtftalsdK&|o@UEoZ6Y&0$ zs!9seAb=oaO}H+h4+MO;gf`Bg1_CY3w%{Yld@SIT=NJnEHL>=#)_@z5`BcDX7fZ5C z&9Je0j6@~%xquoM@P*=DM#4{%g!=-%3^z{Us~Ozf6YzCuDtHojaSVTof8eJ9_Y1-k zc_6Uq{)6^@Z!o0wEG-1RHyrlshGtaBJro_fGTbV8Snyo!On8EZ>_miVqUIc?ybwj5 zVXHK~N;(haPgCsa_l%@wr}L z7WHSIOho8VW-fKZlZ<~m)XTCs@;&KV|4ltUK32zR{#c#nae1|%N~#35+;zMjCXNyV zzIh7U`=FkJHiJ4gM^{26+;p!aamY`M+ecnJ<;G1sv+~Tq2+@h{gLw+p3~Y32DDD+> zc$r;mNn%>e!vDgbU5YPl-abCQ<(YTLy@2P% zGC;X-lEsx<_&>L%()`S#F2LoKB;&_v@r-Sy2hz^W3r0BzY5L!dU3kiuCp}i)-omzg zf|7XgBV6f*oH>HYG>%I}I-j)kH7xuBEv=3J$=M*Vl=COFPQAX8ef~An$c(^k`5?aA ZhdbTM-d}KcB%s5!e*waib_r(&001S7<1PRI delta 954 zcmV;r14aDO2h|4$ABzYGot@{A2P=QaO-j>pjSG~A^2}jqQ9>l^B-@e&r8Oa?9k;P3 zb{W0tWMt`ViKvoRIwypVXW&K3N8>B-aoCFz+bJo`SmWFM|MqTg_wIgQc?uQ9y;rGJ zxX(t6F@NMU99X0Fxb6FPd&~^IHEN8;)_A11S~|)t?lnx);GX4k7BuxXj%rU3GEx3J~`?{xQ3uS%zjbY>inAu66q_U`;?( z2~W_FxNAr?b&a*Pwuzht*Cl`RrhvB=jLg?Sm1&lx*)4cmA~yuQvp}k+2>$S6Z42I& z(0c;jzX)Q?LePer68b>Ehc6}6z*J1lZfeaYd?cBV1$=VhLiB;me*ufnxsxHW^@I|9BgrGh7c7sr2~__~)ZqUIc?ybwj* z(3q*|RnqZ&o(XkZE)XRXhfaQrvP~NBaqJ0xraN?_zELGxWzJEWICP)$O!eaEfS>pU zuA)BT$wY(>HOz%?c$9x}hk98SN4_UR>%XdphllDo&7Y~$JTA8uR7sVccT`-TKF@q)swG{U% z20Zij`8bL>Sndj%`3US|XwSg$_o9^ia3px~ut(tA^*`V{T;qQ)gw85U4PB?b?yEOH z;Q0a1v2fEQ^3y!2|Eo;D6lqe{ zzbI6R Date: Tue, 25 Apr 2017 16:44:27 +0200 Subject: [PATCH 19/22] fix normalization of 'boundary=...' patterns in outgoing traffic checks --- vcr/core.py | 1 + vcr/utils.py | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/vcr/core.py b/vcr/core.py index cc77a1b..4072405 100644 --- a/vcr/core.py +++ b/vcr/core.py @@ -229,6 +229,7 @@ def replay_next(cls, name_got, args_got, kwargs_got): # lookahead to next playlist item if (name_got == 'sendall' and args_got and len(args_got) == 1 and + hasattr(args_got, 'decode') and args_got[0].startswith(b'POST ') and args_expected[0].endswith(b'\r\n\r\n') and not args_got[0].endswith(b'\r\n\r\n') and diff --git a/vcr/utils.py b/vcr/utils.py index b63b527..3249680 100644 --- a/vcr/utils.py +++ b/vcr/utils.py @@ -106,6 +106,9 @@ def _normalize_http_header(name, args, kwargs): return name, args, kwargs if len(args) != 1: return name, args, kwargs + # test for bytes: + if not hasattr(args[0], 'decode'): + return name, args, kwargs if b'HTTP' in args[0]: # sort HTTP headers # example: @@ -125,10 +128,17 @@ def _normalize_http_header(name, args, kwargs): repl = b'User-Agent: xxx\\1' args = tuple([re.sub(pattern, repl, args[0], count=1)]) - # normalize 'boundary=...' string - pattern = b'(boundary)=[0-9a-fA-F]{32}((\\r\\n)|(;))' - repl = b'\\1=xxx\\2' - args = tuple([re.sub(pattern, repl, args[0], count=1)]) + dummy_boundary = b'abcdefghijklmnopqrstuv0123456789' + patterns_and_repl = [ + # normalize '--...boundary=...----' string + (b'--([0-9a-fA-F]{32})([^\\1]*)\\1([^\\1]*)\\1--', + b''.join([b'--', dummy_boundary, b'\\2', dummy_boundary, b'\\3', + dummy_boundary])), + # normalize '...boundary=...' string + (b'boundary=[0-9a-fA-F]{32}', b'boundary=' + dummy_boundary), + ] + for pattern, repl in patterns_and_repl: + args = tuple([re.sub(pattern, repl, args[0], count=1)]) # normalize temp filename string pattern = b'filename=(["\'])([^\\1]*)\\1' From 225461c87b2ad5835d54b0b16a5e74458c9331e7 Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Tue, 25 Apr 2017 16:50:16 +0200 Subject: [PATCH 20/22] SQUASH update one vcr tape --- tests/vcrtapes/test_xmlrpc.test_serverproxy.vcr | Bin 691 -> 749 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/vcrtapes/test_xmlrpc.test_serverproxy.vcr b/tests/vcrtapes/test_xmlrpc.test_serverproxy.vcr index b6f5716a1843d5bac262c8a7cca0d1f80b35f0e2..cfe39552927833ed3993a79eb3fc0b519d494210 100644 GIT binary patch delta 725 zcmV;`0xJEp1?>d~ABzYGEn)wW2PS{nZqrZ@H3dq0i&N5dgBel69P|; zae5O^vPxSIUZER*^N^pK(s$X;+|}b52o# z7e^6z0?!QQ4)E+4&$R@eKTLn65czHx;=H%z#Xfi`gD7(tE;wH)-`?ojTFMfZ8_W+DoNrW7TOl<59+EVOqbEzcqAjh|S#1b3$zP?jj~*>|2zA(VhocZuh1BZ` zS3nl6slQdQ+Q?1ZVLEZhzIVf2sMmr>)J?snX11mt23bv=RH;XO>hII>`heEI(ZQPs zcx#NeX?>n^W@z=Hy90l{AOyVQOwlvh#>E4?JH~t7RuHpi`vTHe8w~F+f5HcJ?Zab| zG|`6}n#MPpKj_P3r`s*=g>ef1VARzAug)4#U~zjF9&@9}8>57f^)mHXX3;Wq{^E@- zvo0h=u*EYeU(-L}&l7?RAW^GIG5;=zT6U({pHeK66pJf$c|t{h2hvd-r9hF{3B~08 z^nbXsKbh{vyJEoC+?`ms6QU3E>aXG>zB4@auNkutEEQWs;w7y2n>G-xY321 zyD+Tu^TmzER(ahbFyalBBpVSW7`0_I`K-E}RrRI3nwwvSu~PK}h=6fNz%9id!2&nr zoVfyIkM!Vn7w(h=+&xPrj5nPifC;zZhE3)sgz?lNFlqn7e6>=ys8*}4=IEwnRW)7J zWwIG2!l2g=l1b5ZStK&+DTaT~TLx`?^COw8hFmZ%GFB&I1{LgBXvgh9CSR~QQ*2?% zpw*7>LY~2R9J$(@x_H^P&3H?A2GtjFxJ=-lJ&dabj_|n-_fOzK4IcL3Q5PQLVNVoq z!ke^zV}-ebX!MB1i68Qh)4H0SUMUc>&2Un470 zzf$Z`T)piauzf#ZKk{N$TrEbJ;Ad zluqeOWyjkM>IPxL{=t9fy#9Z6){p{&Zp8ivn$6Q<6eF^pr+UtqTQG7<^z)7-lRAr$ zV1uSoZsR||dW7>?tSzexnXf)CTd8J$OEHB~Osy2;KK(V8L?KTYM#lOSqkHb3x?|@| z*TX~M(KY8F6i%P$v%Gd$e8G2$r(K%??^D{RYoL^*@=uuA6EF+Q)IUX#?ybNB003kj BMUemi From 60f9f57a3a7943e7500a915977a5108bf3de7d77 Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Wed, 26 Apr 2017 12:43:59 +0200 Subject: [PATCH 21/22] use http header normalization in outgoing traffic checks in all relevant tests, also after reset() in test code --- tests/test_core.py | 18 ++++++++++++++++++ tests/test_xmlrpc.py | 11 ++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/tests/test_core.py b/tests/test_core.py index f3ebb81..b4d91df 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -210,6 +210,8 @@ def setUp(self): self.path = os.path.join(os.path.dirname(__file__), 'vcrtapes') self.temp_test_vcr = os.path.join(self.path, 'test_core.temp_test.vcr') self.read_test_vcr = os.path.join(self.path, 'test_core.read_test.vcr') + VCRSystem.outgoing_check_normalizations = [ + _normalize_http_header] def tearDown(self): # cleanup temporary files @@ -241,6 +243,10 @@ def read_test(): # reset VCRSystem.reset() + # due to the reset we have to put http header normalizations in place + # again which is done in test case setUp() + VCRSystem.outgoing_check_normalizations = [ + _normalize_http_header] # re-run the test - again no output with catch_stdout() as out: read_test() @@ -274,6 +280,10 @@ def temp_test(): # reset VCRSystem.reset() + # due to the reset we have to put http header normalizations in place + # again which is done in test case setUp() + VCRSystem.outgoing_check_normalizations = [ + _normalize_http_header] # get current mtime mtime = os.path.getmtime(self.temp_test_vcr) # run it again @@ -302,6 +312,10 @@ def read_test(): # reset VCRSystem.reset() + # due to the reset we have to put http header normalizations in place + # again which is done in test case setUp() + VCRSystem.outgoing_check_normalizations = [ + _normalize_http_header] # re-run the test - again output due to debug mode on decorator level with catch_stdout() as out: read_test() @@ -331,6 +345,10 @@ def temp_test(): # reset VCRSystem.reset() + # due to the reset we have to put http header normalizations in place + # again which is done in test case setUp() + VCRSystem.outgoing_check_normalizations = [ + _normalize_http_header] # re-run the test - now record mode without exception with catch_stdout() as out: temp_test() diff --git a/tests/test_xmlrpc.py b/tests/test_xmlrpc.py index 0d576de..77c93dc 100644 --- a/tests/test_xmlrpc.py +++ b/tests/test_xmlrpc.py @@ -3,7 +3,8 @@ import unittest -from vcr import vcr +from vcr import vcr, VCRSystem +from vcr.utils import _normalize_http_header try: @@ -18,6 +19,14 @@ class XMLRPCTestCase(unittest.TestCase): """ Test suite using xmlrpc """ + def setUp(self): + VCRSystem.outgoing_check_normalizations = [ + _normalize_http_header] + + def tearDown(self): + # reset to default settings + VCRSystem.reset() + @vcr def test_serverproxy(self): server = ServerProxy("http://betty.userland.com") From 74bb27de7f76d934c67733d8eda6db53f5a70e6a Mon Sep 17 00:00:00 2001 From: Tobias Megies Date: Wed, 26 Apr 2017 12:45:58 +0200 Subject: [PATCH 22/22] more detailed error meassage on failing outgoing traffic check --- vcr/core.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vcr/core.py b/vcr/core.py index 4072405..d63802b 100644 --- a/vcr/core.py +++ b/vcr/core.py @@ -255,9 +255,11 @@ def replay_next(cls, name_got, args_got, kwargs_got): args_expected, kwargs_expected) if (name_expected, args_expected, kwargs_expected) != \ (name_got, args_got, kwargs_got): - msg = '\nExpected: {} {} {}\nGot: {} {} {}'.format( + msg = ('\nExpected: {} {} {}\nGot: {} {} {}\n' + 'Outgoing check normalizations: {!s}').format( name_expected, args_expected, kwargs_expected, - name_got, args_got, kwargs_got) + name_got, args_got, kwargs_got, + VCRSystem.outgoing_check_normalizations) cls.clear_playlist() raise VCRPlaybackOutgoingTrafficMismatch(msg) return value_