mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 17:15:35 +00:00
v4.0.x - Remove legacy python and add python3.8 support (#499)
* Drop support for legacy Python 2.7 * Upgrade Python syntax with pyupgrade --py3-plus * Trim testing matrix to remove python2 * re-enable python3.8 in travis as tests that are not allowed to fail * Remove some six * The future is now * Remove Python 2 imports * Add back example, but change py27 to py36 * Remove redundant compat.py * Blacken * Credit hugovk in changelog WIP Updating Sphinx Docs and AutoDoc * Fix AutoDoc and update Sphinx theme to python_doc_theme * Fix #420, autodoc even undocumented (docstring-less) method signatures * Doc theme 'nature'. Add global TOC to doc sidebar * Comment last reference to package six * Changelog is now a consistent format * Yet another documentation fix for links and title hierarchy * Start work on new SVG logo test SVG in README trying to test new SVG logo in README Apply centering Apply readme logo centering Trying to align image Trying random shit trying align right add emoji Large logo has higher priority Change title hierarchy Actually use a H1 Try again try and organise badges revert link back to point at master * updated new take on VCR logo as SVG code * Testing modern logo in docs * Add sanitize for rendering SVG * Switch to alabaster theme * Update vcrpy logo (#503) * Add credit for V4 logo changes. * Add rewind and play animation * Add svg into ReadTheDocs static assets so that it can be hosted so the animations work. * Need to embedd the SVG for ReadTheDocs somewhere so I can get the link to later embed in the README Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: Sean Bailey <sean@seanbailey.io>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
# External imports
|
||||
import os
|
||||
from six.moves.urllib.request import urlopen
|
||||
from urllib.request import urlopen
|
||||
|
||||
# Internal imports
|
||||
import vcr
|
||||
|
||||
@@ -6,14 +6,9 @@ import boto # NOQA
|
||||
import boto.iam # NOQA
|
||||
from boto.s3.connection import S3Connection # NOQA
|
||||
from boto.s3.key import Key # NOQA
|
||||
from configparser import DuplicateSectionError # NOQA
|
||||
import vcr # NOQA
|
||||
|
||||
try: # NOQA
|
||||
from ConfigParser import DuplicateSectionError # NOQA
|
||||
except ImportError: # NOQA
|
||||
# python3
|
||||
from configparser import DuplicateSectionError # NOQA
|
||||
|
||||
|
||||
def test_boto_stubs(tmpdir):
|
||||
with vcr.use_cassette(str(tmpdir.join("boto-stubs.yml"))):
|
||||
|
||||
@@ -2,7 +2,7 @@ import os
|
||||
import json
|
||||
import pytest
|
||||
import vcr
|
||||
from six.moves.urllib.request import urlopen
|
||||
from urllib.request import urlopen
|
||||
|
||||
|
||||
def test_set_serializer_default_config(tmpdir, httpbin):
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# External imports
|
||||
import os
|
||||
import time
|
||||
from six.moves.urllib.request import urlopen
|
||||
from urllib.request import urlopen
|
||||
|
||||
# Internal imports
|
||||
import vcr
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import base64
|
||||
import pytest
|
||||
from six.moves.urllib.request import urlopen, Request
|
||||
from six.moves.urllib.parse import urlencode
|
||||
from six.moves.urllib.error import HTTPError
|
||||
from urllib.request import urlopen, Request
|
||||
from urllib.parse import urlencode
|
||||
from urllib.error import HTTPError
|
||||
import vcr
|
||||
import json
|
||||
from assertions import assert_cassette_has_one_response, assert_is_json
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
import sys
|
||||
|
||||
from six.moves.urllib_parse import urlencode
|
||||
from urllib.parse import urlencode
|
||||
import pytest
|
||||
import pytest_httpbin.certs
|
||||
|
||||
@@ -111,7 +111,7 @@ def test_post_data(tmpdir, httpbin_both):
|
||||
|
||||
def test_post_unicode_data(tmpdir, httpbin_both):
|
||||
"""Ensure that it works when posting unicode data"""
|
||||
data = urlencode({"snowman": u"☃".encode("utf-8")})
|
||||
data = urlencode({"snowman": "☃".encode()})
|
||||
url = httpbin_both.url + "/post"
|
||||
with vcr.use_cassette(str(tmpdir.join("post_data.yaml"))):
|
||||
_, res1 = http().request(url, "POST", data)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from six.moves.urllib.request import urlopen
|
||||
from urllib.request import urlopen
|
||||
import socket
|
||||
from contextlib import contextmanager
|
||||
import vcr
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import vcr
|
||||
import pytest
|
||||
from six.moves.urllib.request import urlopen
|
||||
from urllib.request import urlopen
|
||||
|
||||
|
||||
DEFAULT_URI = "http://httpbin.org/get?p1=q1&p2=q2" # base uri for testing
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import pytest
|
||||
import vcr
|
||||
from six.moves.urllib.request import urlopen
|
||||
from urllib.request import urlopen
|
||||
|
||||
|
||||
def test_making_extra_request_raises_exception(tmpdir, httpbin):
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
import multiprocessing
|
||||
import pytest
|
||||
|
||||
from six.moves import socketserver, SimpleHTTPServer
|
||||
from six.moves.urllib.request import urlopen
|
||||
import http.server
|
||||
import socketserver
|
||||
from urllib.request import urlopen
|
||||
|
||||
# Internal imports
|
||||
import vcr
|
||||
@@ -15,7 +16,7 @@ import vcr
|
||||
requests = pytest.importorskip("requests")
|
||||
|
||||
|
||||
class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler):
|
||||
class Proxy(http.server.SimpleHTTPRequestHandler):
|
||||
"""
|
||||
Simple proxy server.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import pytest
|
||||
import vcr
|
||||
from six.moves.urllib.request import urlopen
|
||||
from urllib.request import urlopen
|
||||
|
||||
|
||||
def test_once_record_mode(tmpdir, httpbin):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import vcr
|
||||
from six.moves.urllib.request import urlopen
|
||||
from urllib.request import urlopen
|
||||
|
||||
|
||||
def true_matcher(r1, r2):
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
# External imports
|
||||
import os
|
||||
from six.moves.urllib.request import urlopen
|
||||
from urllib.request import urlopen
|
||||
|
||||
# Internal imports
|
||||
import vcr
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import vcr
|
||||
|
||||
|
||||
class MockSerializer(object):
|
||||
class MockSerializer:
|
||||
def __init__(self):
|
||||
self.serialize_count = 0
|
||||
self.deserialize_count = 0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import vcr
|
||||
from six.moves.urllib.request import urlopen
|
||||
from urllib.request import urlopen
|
||||
|
||||
|
||||
def test_recorded_request_uri_with_redirected_request(tmpdir, httpbin):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import vcr
|
||||
import zlib
|
||||
import json
|
||||
import six.moves.http_client as httplib
|
||||
import http.client as httplib
|
||||
|
||||
from assertions import assert_is_json
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
"""Integration tests with urllib2"""
|
||||
|
||||
import ssl
|
||||
from six.moves.urllib.request import urlopen
|
||||
from six.moves.urllib_parse import urlencode
|
||||
from urllib.request import urlopen
|
||||
from urllib.parse import urlencode
|
||||
import pytest_httpbin.certs
|
||||
|
||||
# Internal imports
|
||||
@@ -104,7 +104,7 @@ def test_post_data(httpbin_both, tmpdir):
|
||||
|
||||
def test_post_unicode_data(httpbin_both, tmpdir):
|
||||
"""Ensure that it works when posting unicode data"""
|
||||
data = urlencode({"snowman": u"☃".encode("utf-8")}).encode("utf-8")
|
||||
data = urlencode({"snowman": "☃".encode()}).encode("utf-8")
|
||||
url = httpbin_both.url + "/post"
|
||||
with vcr.use_cassette(str(tmpdir.join("post_data.yaml"))):
|
||||
res1 = urlopen_with_cafile(url, data).read()
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
import http.client as httplib
|
||||
import multiprocessing
|
||||
import pytest
|
||||
from six.moves import xmlrpc_client, xmlrpc_server
|
||||
from xmlrpc.client import ServerProxy
|
||||
from xmlrpc.server import SimpleXMLRPCServer
|
||||
|
||||
requests = pytest.importorskip("requests")
|
||||
|
||||
import vcr # NOQA
|
||||
|
||||
try:
|
||||
import httplib
|
||||
except ImportError:
|
||||
import http.client as httplib
|
||||
|
||||
|
||||
def test_domain_redirect():
|
||||
"""Ensure that redirects across domains are considered unique"""
|
||||
@@ -80,7 +77,7 @@ def test_amazon_doctype(tmpdir):
|
||||
|
||||
|
||||
def start_rpc_server(q):
|
||||
httpd = xmlrpc_server.SimpleXMLRPCServer(("127.0.0.1", 0))
|
||||
httpd = SimpleXMLRPCServer(("127.0.0.1", 0))
|
||||
httpd.register_function(pow)
|
||||
q.put("http://{}:{}".format(*httpd.server_address))
|
||||
httpd.serve_forever()
|
||||
@@ -99,11 +96,11 @@ def rpc_server():
|
||||
|
||||
def test_xmlrpclib(tmpdir, rpc_server):
|
||||
with vcr.use_cassette(str(tmpdir.join("xmlrpcvideo.yaml"))):
|
||||
roundup_server = xmlrpc_client.ServerProxy(rpc_server, allow_none=True)
|
||||
roundup_server = ServerProxy(rpc_server, allow_none=True)
|
||||
original_schema = roundup_server.pow(2, 4)
|
||||
|
||||
with vcr.use_cassette(str(tmpdir.join("xmlrpcvideo.yaml"))):
|
||||
roundup_server = xmlrpc_client.ServerProxy(rpc_server, allow_none=True)
|
||||
roundup_server = ServerProxy(rpc_server, allow_none=True)
|
||||
second_schema = roundup_server.pow(2, 4)
|
||||
|
||||
assert original_schema == second_schema
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import contextlib
|
||||
import copy
|
||||
import inspect
|
||||
import mock
|
||||
import os
|
||||
|
||||
from six.moves import http_client as httplib
|
||||
import http.client as httplib
|
||||
import pytest
|
||||
import yaml
|
||||
|
||||
from vcr.compat import mock, contextlib
|
||||
from vcr.cassette import Cassette
|
||||
from vcr.errors import UnhandledHTTPRequestError
|
||||
from vcr.patch import force_reset
|
||||
@@ -208,7 +209,7 @@ def test_nesting_context_managers_by_checking_references_of_http_connection():
|
||||
|
||||
|
||||
def test_custom_patchers():
|
||||
class Test(object):
|
||||
class Test:
|
||||
attribute = None
|
||||
|
||||
with Cassette.use(path="custom_patches", custom_patches=((Test, "attribute", VCRHTTPSConnection),)):
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import mock
|
||||
|
||||
import pytest
|
||||
|
||||
from vcr.compat import mock
|
||||
from vcr import errors
|
||||
from vcr.cassette import Cassette
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from six import BytesIO
|
||||
from io import BytesIO
|
||||
from vcr.filters import (
|
||||
remove_headers,
|
||||
replace_headers,
|
||||
@@ -8,10 +8,10 @@ from vcr.filters import (
|
||||
replace_post_data_parameters,
|
||||
decode_response,
|
||||
)
|
||||
from vcr.compat import mock
|
||||
from vcr.request import Request
|
||||
import gzip
|
||||
import json
|
||||
import mock
|
||||
import zlib
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import itertools
|
||||
from vcr.compat import mock
|
||||
import mock
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
# coding: UTF-8
|
||||
import io
|
||||
import unittest
|
||||
|
||||
import six
|
||||
|
||||
from vcr.stubs import VCRHTTPResponse
|
||||
|
||||
@@ -58,7 +55,6 @@ def test_response_headers_should_have_correct_values():
|
||||
assert response.headers.get("date") == "Fri, 24 Oct 2014 18:35:37 GMT"
|
||||
|
||||
|
||||
@unittest.skipIf(six.PY2, "Regression test for Python3 only")
|
||||
def test_response_parses_correctly_and_fp_attribute_error_is_not_thrown():
|
||||
"""
|
||||
Regression test for https://github.com/kevin1024/vcrpy/issues/440
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
import mock
|
||||
|
||||
import pytest
|
||||
|
||||
from vcr.compat import mock
|
||||
from vcr.request import Request
|
||||
from vcr.serialize import deserialize, serialize
|
||||
from vcr.serializers import yamlserializer, jsonserializer, compat
|
||||
@@ -29,7 +30,7 @@ def test_deserialize_new_json_cassette():
|
||||
deserialize(f.read(), jsonserializer)
|
||||
|
||||
|
||||
REQBODY_TEMPLATE = u"""\
|
||||
REQBODY_TEMPLATE = """\
|
||||
interactions:
|
||||
- request:
|
||||
body: {req_body}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import mock
|
||||
|
||||
from vcr.stubs import VCRHTTPSConnection
|
||||
from vcr.compat import mock
|
||||
from vcr.cassette import Cassette
|
||||
|
||||
|
||||
class TestVCRConnection(object):
|
||||
class TestVCRConnection:
|
||||
def test_setting_of_attributes_get_propogated_to_real_connection(self):
|
||||
vcr_connection = VCRHTTPSConnection("www.examplehost.com")
|
||||
vcr_connection.ssl_version = "example_ssl_version"
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import mock
|
||||
import os
|
||||
|
||||
import pytest
|
||||
from six.moves import http_client as httplib
|
||||
import http.client as httplib
|
||||
|
||||
from vcr import VCR, use_cassette
|
||||
from vcr.compat import mock
|
||||
from vcr.request import Request
|
||||
from vcr.stubs import VCRHTTPSConnection
|
||||
from vcr.patch import _HTTPConnection, force_reset
|
||||
@@ -170,7 +170,7 @@ def test_fixtures_with_use_cassette(random_fixture):
|
||||
|
||||
|
||||
def test_custom_patchers():
|
||||
class Test(object):
|
||||
class Test:
|
||||
attribute = None
|
||||
attribute2 = None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user