27 lines
794 B
Python
27 lines
794 B
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
import re
|
||
|
|
|
||
|
|
from ariadne.services.mailu import MailuService
|
||
|
|
from ariadne.utils.errors import safe_error_detail
|
||
|
|
from ariadne.utils.passwords import random_password
|
||
|
|
|
||
|
|
|
||
|
|
def test_random_password_length() -> None:
|
||
|
|
password = random_password(24)
|
||
|
|
assert len(password) == 24
|
||
|
|
assert re.match(r"^[A-Za-z0-9]+$", password)
|
||
|
|
|
||
|
|
|
||
|
|
def test_mailu_resolve_email_attribute() -> None:
|
||
|
|
attrs = {"mailu_email": ["custom@bstein.dev"]}
|
||
|
|
assert MailuService.resolve_mailu_email("alice", attrs) == "custom@bstein.dev"
|
||
|
|
|
||
|
|
|
||
|
|
def test_mailu_resolve_email_default() -> None:
|
||
|
|
assert MailuService.resolve_mailu_email("alice", {}) == "alice@bstein.dev"
|
||
|
|
|
||
|
|
|
||
|
|
def test_safe_error_detail_runtime() -> None:
|
||
|
|
assert safe_error_detail(RuntimeError("boom"), "fallback") == "boom"
|