feat(mail): define standard IMAP folder mappings

This commit is contained in:
2026-08-19 21:27:42 +02:00
parent 4cf2bfeb3e
commit 9d1352ba30
10 changed files with 300 additions and 16 deletions
+30 -1
View File
@@ -2,10 +2,39 @@ from __future__ import annotations
import unittest
from govoplan_core.mail.config import normalize_split_transport_credentials
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(
{