mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-10 17:45:35 +00:00
Add global toggle to use_cassette.
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
from six.moves import http_client as httplib
|
||||
|
||||
import pytest
|
||||
import yaml
|
||||
import mock
|
||||
|
||||
from vcr.cassette import Cassette
|
||||
from vcr.errors import UnhandledHTTPRequestError
|
||||
from vcr import global_toggle
|
||||
|
||||
|
||||
def test_cassette_load(tmpdir):
|
||||
@@ -69,11 +73,11 @@ def test_cassette_cant_read_same_request_twice():
|
||||
|
||||
|
||||
@mock.patch('vcr.cassette.requests_match', return_value=True)
|
||||
@mock.patch('vcr.cassette.load_cassette', lambda *args, **kwargs: (('foo',), (mock.MagicMock(),)))
|
||||
@mock.patch('vcr.cassette.load_cassette',
|
||||
lambda *args, **kwargs: (('foo',), (mock.MagicMock(),)))
|
||||
@mock.patch('vcr.cassette.Cassette.can_play_response_for', return_value=True)
|
||||
@mock.patch('vcr.stubs.VCRHTTPResponse')
|
||||
def test_function_decorated_with_use_cassette_can_be_invoked_multiple_times(*args):
|
||||
from six.moves import http_client as httplib
|
||||
@Cassette.use_cassette('test')
|
||||
def decorated_function():
|
||||
conn = httplib.HTTPConnection("www.python.org")
|
||||
@@ -96,3 +100,21 @@ def test_cassette_all_played():
|
||||
a.append('foo', 'bar')
|
||||
a.play_response('foo')
|
||||
assert a.all_played
|
||||
|
||||
@mock.patch('vcr.cassette.install')
|
||||
@mock.patch('vcr.cassette.reset')
|
||||
def test_global_toggle(mock_reset, mock_install):
|
||||
@Cassette.use_cassette('test')
|
||||
def function():
|
||||
pass
|
||||
|
||||
global_toggle(enabled=False)
|
||||
|
||||
function()
|
||||
assert mock_install.call_count == 0
|
||||
assert mock_reset.call_count == 0
|
||||
|
||||
global_toggle(enabled=True)
|
||||
function()
|
||||
mock_install.assert_called_once_with(mock.ANY)
|
||||
mock_reset.assert_called_once_with()
|
||||
|
||||
Reference in New Issue
Block a user