Files
govoplan-core/tests/test_mail_config.py
T

62 lines
2.2 KiB
Python

from __future__ import annotations
import unittest
from govoplan_core.mail.config import ImapServerConfig, normalize_split_transport_credentials
class MailConfigTests(unittest.TestCase):
def test_legacy_sent_folder_populates_standard_mapping(self) -> None:
config = ImapServerConfig.model_validate(
{"host": "imap.example.test", "sent_folder": " Sent Items "}
)
self.assertEqual("Sent Items", config.sent_folder)
self.assertIsNotNone(config.folder_mappings)
assert config.folder_mappings is not None
self.assertEqual("Sent Items", config.folder_mappings.sent)
def test_standard_sent_mapping_remains_legacy_append_default(self) -> None:
config = ImapServerConfig.model_validate(
{
"host": "imap.example.test",
"sent_folder": "Old Sent",
"folder_mappings": {
"inbox": " INBOX ",
"sent": "Sent Items",
"junk": " ",
},
}
)
self.assertEqual("Sent Items", config.sent_folder)
assert config.folder_mappings is not None
self.assertEqual("INBOX", config.folder_mappings.inbox)
self.assertEqual("Sent Items", config.folder_mappings.sent)
self.assertIsNone(config.folder_mappings.junk)
def test_normalize_split_transport_credentials_moves_legacy_auth_fields(self) -> None:
payload = normalize_split_transport_credentials(
{
"smtp": {"host": "smtp.example.test", "username": "smtp-user", "password": "smtp-secret"},
"imap": {"host": "imap.example.test", "enabled": True, "username": "imap-user"},
"credentials": {"smtp": {"username": "existing"}},
}
)
self.assertEqual(
{
"smtp": {"host": "smtp.example.test"},
"imap": {"host": "imap.example.test"},
"credentials": {
"smtp": {"username": "existing", "password": "smtp-secret"},
"imap": {"username": "imap-user"},
},
},
payload,
)
if __name__ == "__main__":
unittest.main()