1
0
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:
Sebastian Pipping
2023-06-02 17:10:23 +02:00
parent 9232915885
commit ad650a7ee1
2 changed files with 55 additions and 42 deletions

View File

@@ -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):

View File

@@ -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