28 lines
930 B
Python
28 lines
930 B
Python
|
|
from ariadne.services import nextcloud_mail_models as models
|
||
|
|
|
||
|
|
|
||
|
|
def test_extract_attr_variants() -> None:
|
||
|
|
assert models._extract_attr("not-attrs", "mailu_email") == ""
|
||
|
|
assert models._extract_attr({"mailu_email": ["", " "]}, "mailu_email") == ""
|
||
|
|
assert models._extract_attr({"mailu_email": " alice@bstein.dev "}, "mailu_email") == "alice@bstein.dev"
|
||
|
|
|
||
|
|
|
||
|
|
def test_resolve_mailu_email_uses_matching_keycloak_email() -> None:
|
||
|
|
user = {"email": " Alice@BSTEIN.DEV ", "attributes": {}}
|
||
|
|
|
||
|
|
assert models._resolve_mailu_email("alice", user) == "Alice@BSTEIN.DEV"
|
||
|
|
|
||
|
|
|
||
|
|
def test_parse_mail_export_skips_blank_lines() -> None:
|
||
|
|
output = """
|
||
|
|
|
||
|
|
Account 7:
|
||
|
|
- E-mail: alice@bstein.dev
|
||
|
|
"""
|
||
|
|
|
||
|
|
assert models._parse_mail_export(output) == [("7", "alice@bstein.dev")]
|
||
|
|
|
||
|
|
|
||
|
|
def test_display_name_joins_first_and_last() -> None:
|
||
|
|
assert models.display_name({"firstName": " Alice ", "lastName": " Atlas "}) == "Alice Atlas"
|