No cassette found when test function is args are multiline
pdjohntony opened this issue · 2 comments
pdjohntony commented
No cassette is found for the following example:
@pytest.mark.vcr
@pytest.mark.parametrize(
"field, value",
[
("addressDescription", "Fake Address"),
("addressDescription", ""),
("name", "Fake Location"),
("name", ""),
],
)
def test_msteams_service_emergency_location_update_bad_raises(
mstsc, field, value, emer_addr
):
I think its due to the (args) being multiline. Need to investigate further.
pdjohntony commented
This issue is actually caused by the @pytest.mark.parametrize()
decorator, which will result in multiple cassettes with different file names for a single test. The current code looks for a single cassette with a name that explicitly match the test name.
So the following test:
@pytest.mark.vcr
def test_msteams_service_emergency_location_get(mstsc)
Creates a cassette with the name:
test_msteams_service_emergency_location_get.yaml
But with the @pytest.mark.parametrize()
decorator, the following test:
@pytest.mark.vcr
@pytest.mark.parametrize(
"field, value",
[
("addressDescription", "Fake Address"),
("addressDescription", ""),
("name", "Fake Location"),
("name", ""),
],
)
def test_msteams_service_emergency_location_update_bad_raises(
mstsc, field, value, emer_addr
):
Creates 4 cassettes with the names:
test_msteams_service_emergency_location_update_bad_raises[addressDescription-].yaml
test_msteams_service_emergency_location_update_bad_raises[addressDescription-Fake Address].yaml
test_msteams_service_emergency_location_update_bad_raises[name-].yaml
test_msteams_service_emergency_location_update_bad_raises[name-Fake Location].yaml
I'm working on a fix to search for any number of cassette files that starts with the test name.
pdjohntony commented
Fixed in 1.1.2