mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 17:15:35 +00:00
Merge pull request #530 from aaronbannin/record-mode-enum
Enumerate Record Mode Values
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import logging
|
||||
from .config import VCR
|
||||
from logging import NullHandler
|
||||
from .record_mode import RecordMode as mode # noqa import is not used in this file
|
||||
|
||||
__version__ = "4.0.2"
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ from .serializers import yamlserializer
|
||||
from .persisters.filesystem import FilesystemPersister
|
||||
from .util import partition_dict
|
||||
from ._handle_coroutine import handle_coroutine
|
||||
from .record_mode import RecordMode
|
||||
|
||||
try:
|
||||
from asyncio import iscoroutinefunction
|
||||
@@ -175,7 +176,7 @@ class Cassette:
|
||||
path,
|
||||
serializer=None,
|
||||
persister=None,
|
||||
record_mode="once",
|
||||
record_mode=RecordMode.ONCE,
|
||||
match_on=(uri, method),
|
||||
before_record_request=None,
|
||||
before_record_response=None,
|
||||
@@ -218,7 +219,7 @@ class Cassette:
|
||||
|
||||
@property
|
||||
def write_protected(self):
|
||||
return self.rewound and self.record_mode == "once" or self.record_mode == "none"
|
||||
return self.rewound and self.record_mode == RecordMode.ONCE or self.record_mode == RecordMode.NONE
|
||||
|
||||
def append(self, request, response):
|
||||
"""Add a request, response pair to this cassette"""
|
||||
@@ -250,7 +251,7 @@ class Cassette:
|
||||
|
||||
def can_play_response_for(self, request):
|
||||
request = self._before_record_request(request)
|
||||
return request and request in self and self.record_mode != "all" and self.rewound
|
||||
return request and request in self and self.record_mode != RecordMode.ALL and self.rewound
|
||||
|
||||
def play_response(self, request):
|
||||
"""
|
||||
|
||||
@@ -12,6 +12,7 @@ from .cassette import Cassette
|
||||
from .serializers import yamlserializer, jsonserializer
|
||||
from .persisters.filesystem import FilesystemPersister
|
||||
from .util import compose, auto_decorate
|
||||
from .record_mode import RecordMode
|
||||
from . import matchers
|
||||
from . import filters
|
||||
|
||||
@@ -37,7 +38,7 @@ class VCR:
|
||||
custom_patches=(),
|
||||
filter_query_parameters=(),
|
||||
ignore_hosts=(),
|
||||
record_mode="once",
|
||||
record_mode=RecordMode.ONCE,
|
||||
ignore_localhost=False,
|
||||
filter_headers=(),
|
||||
before_record_response=None,
|
||||
|
||||
23
vcr/record_mode.py
Normal file
23
vcr/record_mode.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class RecordMode(str, Enum):
|
||||
"""
|
||||
Configues when VCR will record to the cassette.
|
||||
|
||||
Can be declared by either using the enumerated value (`vcr.mode.ONCE`)
|
||||
or by simply using the defined string (`once`).
|
||||
|
||||
`ALL`: Every request is recorded.
|
||||
`ANY`: ?
|
||||
`NEW_EPISODES`: Any request not found in the cassette is recorded.
|
||||
`NONE`: No requests are recorded.
|
||||
`ONCE`: First set of requests is recorded, all others are replayed.
|
||||
Attempting to add a new episode fails.
|
||||
"""
|
||||
|
||||
ALL = "all"
|
||||
ANY = "any"
|
||||
NEW_EPISODES = "new_episodes"
|
||||
NONE = "none"
|
||||
ONCE = "once"
|
||||
Reference in New Issue
Block a user