check-patroni/tests/tools.py

31 lines
809 B
Python
Raw Normal View History

2021-08-11 19:09:14 +02:00
import attr
import pathlib
from pytest_mock import MockerFixture
from check_patroni.types import PatroniResource
here = pathlib.Path(__file__).parent
def getjson(name: str) -> bytes:
path = here / "json" / f"{name}.json"
2021-08-13 10:59:44 +02:00
if not path.exists():
raise Exception(f"path doesnt exist : {path}")
2021-08-11 19:09:14 +02:00
with path.open() as f:
return f.read().encode("utf-8")
@attr.s(auto_attribs=True, frozen=True, slots=True)
class MockApiReturnCode:
data: bytes
status: int
def my_mock(mocker: MockerFixture, json_file: str, status: int) -> None:
def mock_rest_api(self: PatroniResource, service: str) -> MockApiReturnCode:
return MockApiReturnCode(getjson(json_file), status)
2021-08-13 10:59:44 +02:00
mocker.resetall()
2021-08-11 19:09:14 +02:00
mocker.patch("check_patroni.types.PatroniResource.rest_api", mock_rest_api)