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

Fix all warnings (#449)

* fix typo in pytest.mark.xskip

Change xskip by skipif marker as xskip is an unknown pytest marker.

* fix FileModeWarning

This fix the following warning:
FileModeWarning: Requests has determined the content-length for this request using the binary size of the file: however, the file has been opened in text mode (i.e. without the 'b' flag in the mode). This may lead to an incorrect content-length. In Requests 3.0, support will be removed for files in text mode.

* fix waring "calling yaml.load() without Loader=... is deprecated"
This fix the following warning:
YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.

* fix collections.abc deprecation warning in python 3.7.

* update Flask dependency in order to get rid of the Request.is_xhr warning

This fix the following warning:
DeprecationWarning: 'Request.is_xhr' is deprecated as of version 0.13 and will be removed in version 1.0. The 'X-Requested-With' header is not standard and is unreliable. You may be able to use 'accept_mimetypes' instead.
This commit is contained in:
Arthur Hamon
2019-07-01 09:45:01 +02:00
committed by Josh Peak
parent 2b9498e009
commit d682e7b19a
4 changed files with 20 additions and 11 deletions

View File

@@ -116,10 +116,10 @@ def test_post_chunked_binary(tmpdir, httpbin):
assert req1 == req2 assert req1 == req2
@pytest.mark.xskip('sys.version_info >= (3, 6)', strict=True, raises=ConnectionError) @pytest.mark.skipif('sys.version_info >= (3, 6)', strict=True, raises=ConnectionError)
@pytest.mark.xskip((3, 5) < sys.version_info < (3, 6) and @pytest.mark.skipif((3, 5) < sys.version_info < (3, 6) and
platform.python_implementation() == 'CPython', platform.python_implementation() == 'CPython',
reason='Fails on CPython 3.5') reason='Fails on CPython 3.5')
def test_post_chunked_binary_secure(tmpdir, httpbin_secure): def test_post_chunked_binary_secure(tmpdir, httpbin_secure):
'''Ensure that we can send chunked binary without breaking while trying to concatenate bytes with str.''' '''Ensure that we can send chunked binary without breaking while trying to concatenate bytes with str.'''
data1 = iter([b'data', b'to', b'send']) data1 = iter([b'data', b'to', b'send'])
@@ -254,7 +254,7 @@ def test_nested_cassettes_with_session_created_before_nesting(httpbin_both, tmpd
def test_post_file(tmpdir, httpbin_both): def test_post_file(tmpdir, httpbin_both):
'''Ensure that we handle posting a file.''' '''Ensure that we handle posting a file.'''
url = httpbin_both + '/post' url = httpbin_both + '/post'
with vcr.use_cassette(str(tmpdir.join('post_file.yaml'))) as cass, open('tox.ini') as f: with vcr.use_cassette(str(tmpdir.join('post_file.yaml'))) as cass, open('tox.ini', 'rb') as f:
original_response = requests.post(url, f).content original_response = requests.post(url, f).content
# This also tests that we do the right thing with matching the body when they are files. # This also tests that we do the right thing with matching the body when they are files.

View File

@@ -5,6 +5,12 @@ import yaml
import vcr.migration import vcr.migration
# Use the libYAML versions if possible
try:
from yaml import CLoader as Loader
except ImportError:
from yaml import Loader
def test_try_migrate_with_json(tmpdir): def test_try_migrate_with_json(tmpdir):
cassette = tmpdir.join('cassette.json').strpath cassette = tmpdir.join('cassette.json').strpath
@@ -22,9 +28,9 @@ def test_try_migrate_with_yaml(tmpdir):
shutil.copy('tests/fixtures/migration/old_cassette.yaml', cassette) shutil.copy('tests/fixtures/migration/old_cassette.yaml', cassette)
assert vcr.migration.try_migrate(cassette) assert vcr.migration.try_migrate(cassette)
with open('tests/fixtures/migration/new_cassette.yaml', 'r') as f: with open('tests/fixtures/migration/new_cassette.yaml', 'r') as f:
expected_yaml = yaml.load(f) expected_yaml = yaml.load(f, Loader=Loader)
with open(cassette, 'r') as f: with open(cassette, 'r') as f:
actual_yaml = yaml.load(f) actual_yaml = yaml.load(f, Loader=Loader)
assert actual_yaml == expected_yaml assert actual_yaml == expected_yaml

View File

@@ -13,7 +13,7 @@ deps = flake8
commands = commands =
./runtests.sh {posargs} ./runtests.sh {posargs}
deps = deps =
Flask<1 Flask
mock mock
pytest pytest
pytest-httpbin pytest-httpbin

View File

@@ -1,5 +1,8 @@
import copy import copy
import collections try:
from collections import abc as collections_abc # only works on python 3.3+
except ImportError:
import collections as collections_abc
import functools import functools
import inspect import inspect
import os import os
@@ -175,7 +178,7 @@ class VCR(object):
if decode_compressed_response: if decode_compressed_response:
filter_functions.append(filters.decode_response) filter_functions.append(filters.decode_response)
if before_record_response: if before_record_response:
if not isinstance(before_record_response, collections.Iterable): if not isinstance(before_record_response, collections_abc.Iterable):
before_record_response = (before_record_response,) before_record_response = (before_record_response,)
filter_functions.extend(before_record_response) filter_functions.extend(before_record_response)
@@ -241,7 +244,7 @@ class VCR(object):
filter_functions.append(self._build_ignore_hosts(hosts_to_ignore)) filter_functions.append(self._build_ignore_hosts(hosts_to_ignore))
if before_record_request: if before_record_request:
if not isinstance(before_record_request, collections.Iterable): if not isinstance(before_record_request, collections_abc.Iterable):
before_record_request = (before_record_request,) before_record_request = (before_record_request,)
filter_functions.extend(before_record_request) filter_functions.extend(before_record_request)