mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 01:03:24 +00:00
* Correct mock imports. Fixes #504 Update changelog Revert accidental import deletion * Remove move dependency that was masking error from tox.ini
70 lines
2.6 KiB
Python
70 lines
2.6 KiB
Python
from unittest import mock
|
|
|
|
import pytest
|
|
|
|
from vcr import errors
|
|
from vcr.cassette import Cassette
|
|
|
|
|
|
@mock.patch("vcr.cassette.Cassette.find_requests_with_most_matches")
|
|
@pytest.mark.parametrize(
|
|
"most_matches, expected_message",
|
|
[
|
|
# No request match found
|
|
([], "No similar requests, that have not been played, found."),
|
|
# One matcher failed
|
|
(
|
|
[("similar request", ["method", "path"], [("query", "failed : query")])],
|
|
"Found 1 similar requests with 1 different matcher(s) :\n"
|
|
"\n1 - ('similar request').\n"
|
|
"Matchers succeeded : ['method', 'path']\n"
|
|
"Matchers failed :\n"
|
|
"query - assertion failure :\n"
|
|
"failed : query\n",
|
|
),
|
|
# Multiple failed matchers
|
|
(
|
|
[("similar request", ["method"], [("query", "failed : query"), ("path", "failed : path")])],
|
|
"Found 1 similar requests with 2 different matcher(s) :\n"
|
|
"\n1 - ('similar request').\n"
|
|
"Matchers succeeded : ['method']\n"
|
|
"Matchers failed :\n"
|
|
"query - assertion failure :\n"
|
|
"failed : query\n"
|
|
"path - assertion failure :\n"
|
|
"failed : path\n",
|
|
),
|
|
# Multiple similar requests
|
|
(
|
|
[
|
|
("similar request", ["method"], [("query", "failed : query")]),
|
|
("similar request 2", ["method"], [("query", "failed : query 2")]),
|
|
],
|
|
"Found 2 similar requests with 1 different matcher(s) :\n"
|
|
"\n1 - ('similar request').\n"
|
|
"Matchers succeeded : ['method']\n"
|
|
"Matchers failed :\n"
|
|
"query - assertion failure :\n"
|
|
"failed : query\n"
|
|
"\n2 - ('similar request 2').\n"
|
|
"Matchers succeeded : ['method']\n"
|
|
"Matchers failed :\n"
|
|
"query - assertion failure :\n"
|
|
"failed : query 2\n",
|
|
),
|
|
],
|
|
)
|
|
def test_CannotOverwriteExistingCassetteException_get_message(
|
|
mock_find_requests_with_most_matches, most_matches, expected_message
|
|
):
|
|
mock_find_requests_with_most_matches.return_value = most_matches
|
|
cassette = Cassette("path")
|
|
failed_request = "request"
|
|
exception_message = errors.CannotOverwriteExistingCassetteException._get_message(cassette, "request")
|
|
expected = (
|
|
"Can't overwrite existing cassette (%r) in your current record mode (%r).\n"
|
|
"No match for the request (%r) was found.\n"
|
|
"%s" % (cassette._path, cassette.record_mode, failed_request, expected_message)
|
|
)
|
|
assert exception_message == expected
|