74 lines
1.9 KiB
Python
74 lines
1.9 KiB
Python
from __future__ import annotations
|
|
|
|
import time
|
|
|
|
import types
|
|
|
|
import pytest
|
|
|
|
from ariadne.services import mailu as mailu_module
|
|
|
|
from ariadne.services.firefly import FireflyService
|
|
|
|
from ariadne.services.mailu import MailuService
|
|
|
|
from ariadne.services.nextcloud import NextcloudService
|
|
|
|
from ariadne.services.wger import WgerService
|
|
|
|
from ariadne.services.vaultwarden import VaultwardenService
|
|
|
|
class DummyExecutor:
|
|
def __init__(self, stdout: str = "ok", stderr: str = "", exit_code: int = 0):
|
|
self.calls = []
|
|
self._stdout = stdout
|
|
self._stderr = stderr
|
|
self._exit_code = exit_code
|
|
|
|
def exec(self, command, env=None, timeout_sec=None, check=True):
|
|
self.calls.append((command, env, timeout_sec, check))
|
|
return types.SimpleNamespace(
|
|
stdout=self._stdout,
|
|
stderr=self._stderr,
|
|
exit_code=self._exit_code,
|
|
ok=self._exit_code == 0,
|
|
)
|
|
|
|
class DummyResponse:
|
|
def __init__(self, status_code=200, text="", json_data=None):
|
|
self.status_code = status_code
|
|
self.text = text
|
|
self._json_data = json_data
|
|
|
|
def raise_for_status(self):
|
|
return None
|
|
|
|
def json(self):
|
|
if self._json_data is None:
|
|
raise ValueError("no json data")
|
|
return self._json_data
|
|
|
|
class DummyVaultwardenClient:
|
|
def __init__(self):
|
|
self.calls = []
|
|
self.responses = {}
|
|
|
|
def post(self, path, json=None, data=None):
|
|
self.calls.append((path, json, data))
|
|
resp = self.responses.get(path)
|
|
if resp is None:
|
|
resp = DummyResponse(200, "")
|
|
return resp
|
|
|
|
def get(self, path):
|
|
self.calls.append((path, None, None))
|
|
resp = self.responses.get(path)
|
|
if resp is None:
|
|
resp = DummyResponse(200, "", json_data=[])
|
|
return resp
|
|
|
|
def close(self):
|
|
return None
|
|
|
|
__all__ = [name for name in globals() if not name.startswith("__")]
|