mirror of
https://github.com/JockeTF/fimfarchive.git
synced 2024-11-22 05:17:59 +01:00
Add optional post processing to response recorder
This commit is contained in:
parent
aa6cafa305
commit
3139ff9d7c
1 changed files with 8 additions and 1 deletions
9
tests/fixtures/responses.py
vendored
9
tests/fixtures/responses.py
vendored
|
@ -26,7 +26,7 @@ import json
|
|||
from json import JSONDecodeError
|
||||
from os import environ
|
||||
from pathlib import Path
|
||||
from typing import Any, ContextManager, Dict, Iterator, Union, Type
|
||||
from typing import Any, ContextManager, Dict, Iterator, Optional, Union, Type
|
||||
|
||||
import importlib_resources as resources
|
||||
import pytest
|
||||
|
@ -35,6 +35,8 @@ from requests import Session, Response
|
|||
from requests.sessions import Request
|
||||
from requests_mock import Mocker
|
||||
|
||||
from fimfarchive.utils import JayWalker
|
||||
|
||||
|
||||
__all__ = (
|
||||
'responses',
|
||||
|
@ -58,6 +60,7 @@ class Recorder(ContextManager['Recorder']):
|
|||
"""
|
||||
self.original = Session.send
|
||||
self.responses: Dict = dict()
|
||||
self.walker: Optional[JayWalker]
|
||||
self.path = path
|
||||
|
||||
def __iter__(self) -> Iterator[Dict[str, Any]]:
|
||||
|
@ -128,6 +131,10 @@ class Recorder(ContextManager['Recorder']):
|
|||
Session.send = self.original # type: ignore
|
||||
|
||||
data = {NAMESPACE: list(self)}
|
||||
walker = self.walker
|
||||
|
||||
if walker is not None:
|
||||
walker.walk(data)
|
||||
|
||||
with open(self.path, 'wt') as fobj:
|
||||
json.dump(data, fobj, sort_keys=True, indent=4)
|
||||
|
|
Loading…
Reference in a new issue