mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 17:15:35 +00:00
add cassette's method to find the most similar request(s) of a request
This method get the requests in the cassettes with the most matchers that succeeds.
This commit is contained in:
@@ -317,3 +317,51 @@ def test_use_as_decorator_on_generator():
|
||||
yield 2
|
||||
|
||||
assert list(test_function()) == [1, 2]
|
||||
|
||||
|
||||
@mock.patch("vcr.cassette.get_matchers_results")
|
||||
def test_find_requests_with_most_matches_one_similar_request(mock_get_matchers_results):
|
||||
mock_get_matchers_results.side_effect = [
|
||||
(["method"], [("path", "failed : path"), ("query", "failed : query")]),
|
||||
(["method", "path"], [("query", "failed : query")]),
|
||||
([], [("method", "failed : method"), ("path", "failed : path"), ("query", "failed : query")]),
|
||||
]
|
||||
|
||||
cassette = Cassette("test")
|
||||
for request in range(1, 4):
|
||||
cassette.append(request, 'response')
|
||||
result = cassette.find_requests_with_most_matches("fake request")
|
||||
assert result == [(2, ["method", "path"], [("query", "failed : query")])]
|
||||
|
||||
|
||||
@mock.patch("vcr.cassette.get_matchers_results")
|
||||
def test_find_requests_with_most_matches_no_similar_requests(mock_get_matchers_results):
|
||||
mock_get_matchers_results.side_effect = [
|
||||
([], [("path", "failed : path"), ("query", "failed : query")]),
|
||||
([], [("path", "failed : path"), ("query", "failed : query")]),
|
||||
([], [("path", "failed : path"), ("query", "failed : query")]),
|
||||
]
|
||||
|
||||
cassette = Cassette("test")
|
||||
for request in range(1, 4):
|
||||
cassette.append(request, 'response')
|
||||
result = cassette.find_requests_with_most_matches("fake request")
|
||||
assert result == []
|
||||
|
||||
|
||||
@mock.patch("vcr.cassette.get_matchers_results")
|
||||
def test_find_requests_with_most_matches_many_similar_requests(mock_get_matchers_results):
|
||||
mock_get_matchers_results.side_effect = [
|
||||
(["method", "path"], [("query", "failed : query")]),
|
||||
(["method"], [("path", "failed : path"), ("query", "failed : query")]),
|
||||
(["method", "path"], [("query", "failed : query")]),
|
||||
]
|
||||
|
||||
cassette = Cassette("test")
|
||||
for request in range(1, 4):
|
||||
cassette.append(request, 'response')
|
||||
result = cassette.find_requests_with_most_matches("fake request")
|
||||
assert result == [
|
||||
(1, ["method", "path"], [("query", "failed : query")]),
|
||||
(3, ["method", "path"], [("query", "failed : query")])
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user