mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-11 01:53:01 +00:00
vcr/unittest: Apply black formatting
This commit is contained in:
@@ -2,14 +2,15 @@ import inspect
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import unittest
|
import unittest
|
||||||
from .. import VCR
|
|
||||||
|
|
||||||
|
from .. import VCR
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class VCRMixin(object):
|
class VCRMixin(object):
|
||||||
"""A TestCase mixin that provides VCR integration."""
|
"""A TestCase mixin that provides VCR integration."""
|
||||||
|
|
||||||
vcr_enabled = True
|
vcr_enabled = True
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
@@ -22,8 +23,8 @@ class VCRMixin(object):
|
|||||||
self.addCleanup(cm.__exit__, None, None, None)
|
self.addCleanup(cm.__exit__, None, None, None)
|
||||||
|
|
||||||
def _get_vcr(self, **kwargs):
|
def _get_vcr(self, **kwargs):
|
||||||
if 'cassette_library_dir' not in kwargs:
|
if "cassette_library_dir" not in kwargs:
|
||||||
kwargs['cassette_library_dir'] = self._get_cassette_library_dir()
|
kwargs["cassette_library_dir"] = self._get_cassette_library_dir()
|
||||||
return VCR(**kwargs)
|
return VCR(**kwargs)
|
||||||
|
|
||||||
def _get_vcr_kwargs(self, **kwargs):
|
def _get_vcr_kwargs(self, **kwargs):
|
||||||
@@ -31,11 +32,10 @@ class VCRMixin(object):
|
|||||||
|
|
||||||
def _get_cassette_library_dir(self):
|
def _get_cassette_library_dir(self):
|
||||||
testdir = os.path.dirname(inspect.getfile(self.__class__))
|
testdir = os.path.dirname(inspect.getfile(self.__class__))
|
||||||
return os.path.join(testdir, 'cassettes')
|
return os.path.join(testdir, "cassettes")
|
||||||
|
|
||||||
def _get_cassette_name(self):
|
def _get_cassette_name(self):
|
||||||
return '{0}.{1}.yaml'.format(self.__class__.__name__,
|
return "{0}.{1}.yaml".format(self.__class__.__name__, self._testMethodName)
|
||||||
self._testMethodName)
|
|
||||||
|
|
||||||
|
|
||||||
class VCRTestCase(VCRMixin, unittest.TestCase):
|
class VCRTestCase(VCRMixin, unittest.TestCase):
|
||||||
|
|||||||
@@ -1,107 +1,111 @@
|
|||||||
import os
|
import os
|
||||||
|
from unittest import TextTestRunner, defaultTestLoader
|
||||||
from unittest.mock import MagicMock
|
from unittest.mock import MagicMock
|
||||||
from unittest import defaultTestLoader, TextTestRunner
|
|
||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
|
|
||||||
from ..testcase import VCRTestCase
|
from ..testcase import VCRTestCase
|
||||||
|
|
||||||
|
|
||||||
def test_defaults():
|
def test_defaults():
|
||||||
|
|
||||||
class MyTest(VCRTestCase):
|
class MyTest(VCRTestCase):
|
||||||
def test_foo(self):
|
def test_foo(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
test = run_testcase(MyTest)[0][0]
|
test = run_testcase(MyTest)[0][0]
|
||||||
expected_path = os.path.join(os.path.dirname(__file__), 'cassettes')
|
expected_path = os.path.join(os.path.dirname(__file__), "cassettes")
|
||||||
expected_name = 'MyTest.test_foo.yaml'
|
expected_name = "MyTest.test_foo.yaml"
|
||||||
assert os.path.dirname(test.cassette._path) == expected_path
|
assert os.path.dirname(test.cassette._path) == expected_path
|
||||||
assert os.path.basename(test.cassette._path) == expected_name
|
assert os.path.basename(test.cassette._path) == expected_name
|
||||||
|
|
||||||
|
|
||||||
def test_disabled():
|
def test_disabled():
|
||||||
|
|
||||||
# Baseline vcr_enabled = True
|
# Baseline vcr_enabled = True
|
||||||
class MyTest(VCRTestCase):
|
class MyTest(VCRTestCase):
|
||||||
def test_foo(self):
|
def test_foo(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
test = run_testcase(MyTest)[0][0]
|
test = run_testcase(MyTest)[0][0]
|
||||||
assert hasattr(test, 'cassette')
|
assert hasattr(test, "cassette")
|
||||||
|
|
||||||
# Test vcr_enabled = False
|
# Test vcr_enabled = False
|
||||||
class MyTest(VCRTestCase):
|
class MyTest(VCRTestCase):
|
||||||
vcr_enabled = False
|
vcr_enabled = False
|
||||||
|
|
||||||
def test_foo(self):
|
def test_foo(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
test = run_testcase(MyTest)[0][0]
|
test = run_testcase(MyTest)[0][0]
|
||||||
assert not hasattr(test, 'cassette')
|
assert not hasattr(test, "cassette")
|
||||||
|
|
||||||
|
|
||||||
def test_cassette_library_dir():
|
def test_cassette_library_dir():
|
||||||
|
|
||||||
class MyTest(VCRTestCase):
|
class MyTest(VCRTestCase):
|
||||||
def test_foo(self):
|
def test_foo(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _get_cassette_library_dir(self):
|
def _get_cassette_library_dir(self):
|
||||||
return '/testing'
|
return "/testing"
|
||||||
|
|
||||||
test = run_testcase(MyTest)[0][0]
|
test = run_testcase(MyTest)[0][0]
|
||||||
assert test.cassette._path.startswith('/testing/')
|
assert test.cassette._path.startswith("/testing/")
|
||||||
|
|
||||||
|
|
||||||
def test_cassette_name():
|
def test_cassette_name():
|
||||||
|
|
||||||
class MyTest(VCRTestCase):
|
class MyTest(VCRTestCase):
|
||||||
def test_foo(self):
|
def test_foo(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _get_cassette_name(self):
|
def _get_cassette_name(self):
|
||||||
return 'my-custom-name'
|
return "my-custom-name"
|
||||||
|
|
||||||
test = run_testcase(MyTest)[0][0]
|
test = run_testcase(MyTest)[0][0]
|
||||||
assert os.path.basename(test.cassette._path) == 'my-custom-name'
|
assert os.path.basename(test.cassette._path) == "my-custom-name"
|
||||||
|
|
||||||
|
|
||||||
def test_vcr_kwargs_overridden():
|
def test_vcr_kwargs_overridden():
|
||||||
|
|
||||||
class MyTest(VCRTestCase):
|
class MyTest(VCRTestCase):
|
||||||
def test_foo(self):
|
def test_foo(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _get_vcr_kwargs(self):
|
def _get_vcr_kwargs(self):
|
||||||
kwargs = super(MyTest, self)._get_vcr_kwargs()
|
kwargs = super(MyTest, self)._get_vcr_kwargs()
|
||||||
kwargs['record_mode'] = 'new_episodes'
|
kwargs["record_mode"] = "new_episodes"
|
||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
test = run_testcase(MyTest)[0][0]
|
test = run_testcase(MyTest)[0][0]
|
||||||
assert test.cassette.record_mode == 'new_episodes'
|
assert test.cassette.record_mode == "new_episodes"
|
||||||
|
|
||||||
|
|
||||||
def test_vcr_kwargs_passed():
|
def test_vcr_kwargs_passed():
|
||||||
|
|
||||||
class MyTest(VCRTestCase):
|
class MyTest(VCRTestCase):
|
||||||
def test_foo(self):
|
def test_foo(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _get_vcr_kwargs(self):
|
def _get_vcr_kwargs(self):
|
||||||
return super(MyTest, self)._get_vcr_kwargs(
|
return super(MyTest, self)._get_vcr_kwargs(
|
||||||
record_mode='new_episodes',
|
record_mode="new_episodes",
|
||||||
)
|
)
|
||||||
|
|
||||||
test = run_testcase(MyTest)[0][0]
|
test = run_testcase(MyTest)[0][0]
|
||||||
assert test.cassette.record_mode == 'new_episodes'
|
assert test.cassette.record_mode == "new_episodes"
|
||||||
|
|
||||||
|
|
||||||
def test_vcr_kwargs_cassette_dir():
|
def test_vcr_kwargs_cassette_dir():
|
||||||
|
|
||||||
# Test that _get_cassette_library_dir applies if cassette_library_dir
|
# Test that _get_cassette_library_dir applies if cassette_library_dir
|
||||||
# is absent from vcr kwargs.
|
# is absent from vcr kwargs.
|
||||||
class MyTest(VCRTestCase):
|
class MyTest(VCRTestCase):
|
||||||
def test_foo(self):
|
def test_foo(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _get_vcr_kwargs(self):
|
def _get_vcr_kwargs(self):
|
||||||
return dict(
|
return dict(
|
||||||
record_mode='new_episodes',
|
record_mode="new_episodes",
|
||||||
)
|
)
|
||||||
_get_cassette_library_dir = MagicMock(return_value='/testing')
|
|
||||||
|
_get_cassette_library_dir = MagicMock(return_value="/testing")
|
||||||
|
|
||||||
test = run_testcase(MyTest)[0][0]
|
test = run_testcase(MyTest)[0][0]
|
||||||
assert test.cassette._path.startswith('/testing/')
|
assert test.cassette._path.startswith("/testing/")
|
||||||
assert test._get_cassette_library_dir.call_count == 1
|
assert test._get_cassette_library_dir.call_count == 1
|
||||||
|
|
||||||
# Test that _get_cassette_library_dir is ignored if cassette_library_dir
|
# Test that _get_cassette_library_dir is ignored if cassette_library_dir
|
||||||
@@ -109,30 +113,35 @@ def test_vcr_kwargs_cassette_dir():
|
|||||||
class MyTest(VCRTestCase):
|
class MyTest(VCRTestCase):
|
||||||
def test_foo(self):
|
def test_foo(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _get_vcr_kwargs(self):
|
def _get_vcr_kwargs(self):
|
||||||
return dict(
|
return dict(
|
||||||
cassette_library_dir='/testing',
|
cassette_library_dir="/testing",
|
||||||
)
|
)
|
||||||
_get_cassette_library_dir = MagicMock(return_value='/ignored')
|
|
||||||
|
_get_cassette_library_dir = MagicMock(return_value="/ignored")
|
||||||
|
|
||||||
test = run_testcase(MyTest)[0][0]
|
test = run_testcase(MyTest)[0][0]
|
||||||
assert test.cassette._path.startswith('/testing/')
|
assert test.cassette._path.startswith("/testing/")
|
||||||
assert test._get_cassette_library_dir.call_count == 0
|
assert test._get_cassette_library_dir.call_count == 0
|
||||||
|
|
||||||
|
|
||||||
def test_get_vcr_with_matcher(tmpdir):
|
def test_get_vcr_with_matcher(tmpdir):
|
||||||
cassette_dir = tmpdir.mkdir('cassettes')
|
cassette_dir = tmpdir.mkdir("cassettes")
|
||||||
assert len(cassette_dir.listdir()) == 0
|
assert len(cassette_dir.listdir()) == 0
|
||||||
|
|
||||||
mock_matcher = MagicMock(return_value=True, __name__='MockMatcher')
|
mock_matcher = MagicMock(return_value=True, __name__="MockMatcher")
|
||||||
|
|
||||||
class MyTest(VCRTestCase):
|
class MyTest(VCRTestCase):
|
||||||
def test_foo(self):
|
def test_foo(self):
|
||||||
self.response = urlopen('http://example.com').read()
|
self.response = urlopen("http://example.com").read()
|
||||||
|
|
||||||
def _get_vcr(self):
|
def _get_vcr(self):
|
||||||
myvcr = super(MyTest, self)._get_vcr()
|
myvcr = super(MyTest, self)._get_vcr()
|
||||||
myvcr.register_matcher('mymatcher', mock_matcher)
|
myvcr.register_matcher("mymatcher", mock_matcher)
|
||||||
myvcr.match_on = ['mymatcher']
|
myvcr.match_on = ["mymatcher"]
|
||||||
return myvcr
|
return myvcr
|
||||||
|
|
||||||
def _get_cassette_library_dir(self):
|
def _get_cassette_library_dir(self):
|
||||||
return str(cassette_dir)
|
return str(cassette_dir)
|
||||||
|
|
||||||
@@ -145,23 +154,27 @@ def test_get_vcr_with_matcher(tmpdir):
|
|||||||
test = run_testcase(MyTest)[0][0]
|
test = run_testcase(MyTest)[0][0]
|
||||||
assert len(test.cassette.requests) == 1
|
assert len(test.cassette.requests) == 1
|
||||||
assert mock_matcher.called
|
assert mock_matcher.called
|
||||||
assert repr(mock_matcher.mock_calls[0]) == 'call(<Request (GET) http://example.com>, <Request (GET) http://example.com>)'
|
assert (
|
||||||
|
repr(mock_matcher.mock_calls[0])
|
||||||
|
== "call(<Request (GET) http://example.com>, <Request (GET) http://example.com>)"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_testcase_playback(tmpdir):
|
def test_testcase_playback(tmpdir):
|
||||||
cassette_dir = tmpdir.mkdir('cassettes')
|
cassette_dir = tmpdir.mkdir("cassettes")
|
||||||
assert len(cassette_dir.listdir()) == 0
|
assert len(cassette_dir.listdir()) == 0
|
||||||
|
|
||||||
# First test actually reads from the web.
|
# First test actually reads from the web.
|
||||||
|
|
||||||
class MyTest(VCRTestCase):
|
class MyTest(VCRTestCase):
|
||||||
def test_foo(self):
|
def test_foo(self):
|
||||||
self.response = urlopen('http://example.com').read()
|
self.response = urlopen("http://example.com").read()
|
||||||
|
|
||||||
def _get_cassette_library_dir(self):
|
def _get_cassette_library_dir(self):
|
||||||
return str(cassette_dir)
|
return str(cassette_dir)
|
||||||
|
|
||||||
test = run_testcase(MyTest)[0][0]
|
test = run_testcase(MyTest)[0][0]
|
||||||
assert b'illustrative examples' in test.response
|
assert b"illustrative examples" in test.response
|
||||||
assert len(test.cassette.requests) == 1
|
assert len(test.cassette.requests) == 1
|
||||||
assert test.cassette.play_count == 0
|
assert test.cassette.play_count == 0
|
||||||
|
|
||||||
@@ -169,7 +182,7 @@ def test_testcase_playback(tmpdir):
|
|||||||
|
|
||||||
test2 = run_testcase(MyTest)[0][0]
|
test2 = run_testcase(MyTest)[0][0]
|
||||||
assert test.cassette is not test2.cassette
|
assert test.cassette is not test2.cassette
|
||||||
assert b'illustrative examples' in test.response
|
assert b"illustrative examples" in test.response
|
||||||
assert len(test2.cassette.requests) == 1
|
assert len(test2.cassette.requests) == 1
|
||||||
assert test2.cassette.play_count == 1
|
assert test2.cassette.play_count == 1
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user