kevin1024 / vcrpy

Automatically mock your HTTP interactions to simplify and speed up testing
MIT License
2.72k stars 388 forks source link

`CannotOverwriteExistingCassetteException` when no cassette exists is confusing #838

Open The-Compiler opened 6 months ago

The-Compiler commented 6 months ago

A trivial example such as:

import os.path
import urllib.request

import vcr

assert not os.path.exists("doesnotexist.yml")
with vcr.use_cassette("doesnotexist.yml", record_mode="none"):
    urllib.request.urlopen('http://www.iana.org/domains/reserved')

results in:

Traceback (most recent call last):
  [...]
  File "[...]/site-packages/vcr/stubs/__init__.py", line 263, in getresponse
    raise CannotOverwriteExistingCassetteException(
vcr.errors.CannotOverwriteExistingCassetteException: Can't overwrite existing cassette ('doesnotexist.yml') in your current record mode ('none').
No match for the request (<Request (GET) http://www.iana.org/domains/reserved>) was found.
No similar requests, that have not been played, found.

which seems confusing to me: The code failed because no cassette was found, yet the exception name and text claim "Can't override existing cassette".