100 lines
3.9 KiB
Python
100 lines
3.9 KiB
Python
from tests.unit.services.service_helpers import *
|
|
|
|
|
|
def test_nextcloud_sync_mail_no_user(monkeypatch) -> None:
|
|
dummy = types.SimpleNamespace(
|
|
nextcloud_namespace="nextcloud",
|
|
nextcloud_mail_sync_cronjob="nextcloud-mail-sync",
|
|
nextcloud_mail_sync_wait_timeout_sec=90.0,
|
|
nextcloud_mail_sync_job_ttl_sec=3600,
|
|
nextcloud_pod_label="app=nextcloud",
|
|
nextcloud_container="nextcloud",
|
|
nextcloud_exec_timeout_sec=30.0,
|
|
nextcloud_db_host="",
|
|
nextcloud_db_port=5432,
|
|
nextcloud_db_name="nextcloud",
|
|
nextcloud_db_user="nextcloud",
|
|
nextcloud_db_password="",
|
|
mailu_domain="bstein.dev",
|
|
mailu_host="mail.bstein.dev",
|
|
)
|
|
monkeypatch.setattr("ariadne.services.nextcloud.settings", dummy)
|
|
monkeypatch.setattr("ariadne.services.nextcloud.keycloak_admin.ready", lambda: True)
|
|
monkeypatch.setattr("ariadne.services.nextcloud.keycloak_admin.find_user", lambda *_args, **_kwargs: None)
|
|
|
|
svc = NextcloudService()
|
|
result = svc.sync_mail("alice", wait=True)
|
|
assert result["status"] == "ok"
|
|
|
|
def test_nextcloud_missing_config(monkeypatch) -> None:
|
|
dummy = types.SimpleNamespace(
|
|
nextcloud_namespace="",
|
|
nextcloud_mail_sync_cronjob="",
|
|
nextcloud_mail_sync_wait_timeout_sec=90.0,
|
|
nextcloud_mail_sync_job_ttl_sec=3600,
|
|
nextcloud_pod_label="app=nextcloud",
|
|
nextcloud_container="nextcloud",
|
|
nextcloud_exec_timeout_sec=30.0,
|
|
nextcloud_db_host="",
|
|
nextcloud_db_port=5432,
|
|
nextcloud_db_name="nextcloud",
|
|
nextcloud_db_user="nextcloud",
|
|
nextcloud_db_password="",
|
|
mailu_domain="bstein.dev",
|
|
mailu_host="mail.bstein.dev",
|
|
)
|
|
monkeypatch.setattr("ariadne.services.nextcloud.settings", dummy)
|
|
svc = NextcloudService()
|
|
with pytest.raises(RuntimeError):
|
|
svc.sync_mail("alice")
|
|
|
|
def test_nextcloud_sync_missing_username(monkeypatch) -> None:
|
|
dummy = types.SimpleNamespace(
|
|
nextcloud_namespace="nextcloud",
|
|
nextcloud_mail_sync_cronjob="nextcloud-mail-sync",
|
|
nextcloud_mail_sync_wait_timeout_sec=90.0,
|
|
nextcloud_mail_sync_job_ttl_sec=3600,
|
|
nextcloud_pod_label="app=nextcloud",
|
|
nextcloud_container="nextcloud",
|
|
nextcloud_exec_timeout_sec=30.0,
|
|
nextcloud_db_host="",
|
|
nextcloud_db_port=5432,
|
|
nextcloud_db_name="nextcloud",
|
|
nextcloud_db_user="nextcloud",
|
|
nextcloud_db_password="",
|
|
mailu_domain="bstein.dev",
|
|
mailu_host="mail.bstein.dev",
|
|
)
|
|
monkeypatch.setattr("ariadne.services.nextcloud.settings", dummy)
|
|
monkeypatch.setattr("ariadne.services.nextcloud.PodExecutor", lambda *_args, **_kwargs: DummyExecutor())
|
|
|
|
svc = NextcloudService()
|
|
with pytest.raises(RuntimeError):
|
|
svc.sync_mail(" ", wait=True)
|
|
|
|
def test_nextcloud_sync_no_match(monkeypatch) -> None:
|
|
dummy = types.SimpleNamespace(
|
|
nextcloud_namespace="nextcloud",
|
|
nextcloud_mail_sync_cronjob="nextcloud-mail-sync",
|
|
nextcloud_mail_sync_wait_timeout_sec=90.0,
|
|
nextcloud_mail_sync_job_ttl_sec=3600,
|
|
nextcloud_pod_label="app=nextcloud",
|
|
nextcloud_container="nextcloud",
|
|
nextcloud_exec_timeout_sec=30.0,
|
|
nextcloud_db_host="",
|
|
nextcloud_db_port=5432,
|
|
nextcloud_db_name="nextcloud",
|
|
nextcloud_db_user="nextcloud",
|
|
nextcloud_db_password="",
|
|
mailu_domain="bstein.dev",
|
|
mailu_host="mail.bstein.dev",
|
|
)
|
|
monkeypatch.setattr("ariadne.services.nextcloud.settings", dummy)
|
|
monkeypatch.setattr("ariadne.services.nextcloud.keycloak_admin.ready", lambda: True)
|
|
monkeypatch.setattr("ariadne.services.nextcloud.keycloak_admin.find_user", lambda *_args, **_kwargs: None)
|
|
monkeypatch.setattr("ariadne.services.nextcloud.PodExecutor", lambda *_args, **_kwargs: DummyExecutor())
|
|
|
|
svc = NextcloudService()
|
|
result = svc.sync_mail("alice", wait=False)
|
|
assert result["status"] == "ok"
|