mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 01:03:24 +00:00
test: add tests to drop_unused_requests option
This commit is contained in:
@@ -5,6 +5,7 @@ from urllib.request import urlopen
|
||||
import pytest
|
||||
|
||||
import vcr
|
||||
from vcr.cassette import Cassette
|
||||
|
||||
|
||||
def test_set_serializer_default_config(tmpdir, httpbin):
|
||||
@@ -80,3 +81,20 @@ def test_dont_record_on_exception(tmpdir):
|
||||
assert b"Not in content" in urlopen("http://httpbin.org/get").read()
|
||||
|
||||
assert not os.path.exists(str(tmpdir.join("dontsave2.yml")))
|
||||
|
||||
def test_set_drop_unused_requests(tmpdir, httpbin):
|
||||
my_vcr = vcr.VCR(drop_unused_requests=True)
|
||||
file = str(tmpdir.join("test.yaml"))
|
||||
|
||||
with my_vcr.use_cassette(file):
|
||||
urlopen(httpbin.url)
|
||||
urlopen(httpbin.url + "/get")
|
||||
|
||||
cassette = Cassette.load(path=file)
|
||||
assert len(cassette) == 2
|
||||
|
||||
with my_vcr.use_cassette(file):
|
||||
urlopen(httpbin.url)
|
||||
|
||||
cassette = Cassette.load(path=file)
|
||||
assert len(cassette) == 1
|
||||
|
||||
@@ -11,6 +11,7 @@ import yaml
|
||||
from vcr.cassette import Cassette
|
||||
from vcr.errors import UnhandledHTTPRequestError
|
||||
from vcr.patch import force_reset
|
||||
from vcr.request import Request
|
||||
from vcr.stubs import VCRHTTPSConnection
|
||||
|
||||
|
||||
@@ -394,3 +395,25 @@ def test_find_requests_with_most_matches_many_similar_requests(mock_get_matchers
|
||||
(1, ["method", "path"], [("query", "failed : query")]),
|
||||
(3, ["method", "path"], [("query", "failed : query")]),
|
||||
]
|
||||
|
||||
|
||||
def test_used_interactions(tmpdir):
|
||||
interactions = [
|
||||
{"request": {"body": "", "uri": "foo1", "method": "GET", "headers": {}}, "response": "bar1"},
|
||||
{"request": {"body": "", "uri": "foo2", "method": "GET", "headers": {}}, "response": "bar2"},
|
||||
{"request": {"body": "", "uri": "foo3", "method": "GET", "headers": {}}, "response": "bar3"}
|
||||
]
|
||||
file = tmpdir.join("test_cassette.yml")
|
||||
file.write(yaml.dump({"interactions": [interactions[0], interactions[1]]}))
|
||||
|
||||
cassette = Cassette.load(path=str(file))
|
||||
request = Request._from_dict(interactions[1]["request"])
|
||||
cassette.play_response(request)
|
||||
assert len(cassette._played_interactions) < len(cassette._old_interactions)
|
||||
|
||||
request = Request._from_dict(interactions[2]["request"])
|
||||
cassette.append(request, interactions[2]["response"])
|
||||
assert len(cassette._new_interactions()) == 1
|
||||
|
||||
used_interactions = cassette._played_interactions + cassette._new_interactions()
|
||||
assert len(used_interactions) == 2
|
||||
|
||||
Reference in New Issue
Block a user