mirror of
https://github.com/khoaliber/LetterFeed.git
synced 2026-03-02 21:19:13 +00:00
fix: throw error if folder select fails
This commit is contained in:
@@ -38,7 +38,13 @@ def _connect_to_imap(settings: Settings) -> imaplib.IMAP4_SSL | None:
|
|||||||
logger.info(f"Connecting to IMAP server: {settings.imap_server}")
|
logger.info(f"Connecting to IMAP server: {settings.imap_server}")
|
||||||
mail = imaplib.IMAP4_SSL(settings.imap_server)
|
mail = imaplib.IMAP4_SSL(settings.imap_server)
|
||||||
mail.login(settings.imap_username, settings.imap_password)
|
mail.login(settings.imap_username, settings.imap_password)
|
||||||
mail.select(settings.search_folder)
|
status, messages = mail.select(settings.search_folder)
|
||||||
|
if status != "OK":
|
||||||
|
logger.error(
|
||||||
|
f"Failed to select mailbox: {settings.search_folder}, status: {status}, messages: {messages}"
|
||||||
|
)
|
||||||
|
mail.logout()
|
||||||
|
return None
|
||||||
logger.info(f"Selected mailbox: {settings.search_folder}")
|
logger.info(f"Selected mailbox: {settings.search_folder}")
|
||||||
return mail
|
return mail
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@@ -65,8 +65,8 @@ def test_process_emails(mock_imap, db_session: Session):
|
|||||||
# Mock IMAP connection and email fetching
|
# Mock IMAP connection and email fetching
|
||||||
mock_mail = MagicMock()
|
mock_mail = MagicMock()
|
||||||
mock_imap.return_value = mock_mail
|
mock_imap.return_value = mock_mail
|
||||||
mock_mail.login.return_value = (None, None)
|
mock_mail.login.return_value = ("OK", [b"Login successful"])
|
||||||
mock_mail.select.return_value = (None, None)
|
mock_mail.select.return_value = ("OK", [b"1"])
|
||||||
mock_mail.search.return_value = ("OK", [b"1"])
|
mock_mail.search.return_value = ("OK", [b"1"])
|
||||||
|
|
||||||
# Mock email content
|
# Mock email content
|
||||||
@@ -150,6 +150,8 @@ def test_process_emails_auto_add_sender(mock_imap, db_session: Session):
|
|||||||
|
|
||||||
mock_mail = MagicMock()
|
mock_mail = MagicMock()
|
||||||
mock_imap.return_value = mock_mail
|
mock_imap.return_value = mock_mail
|
||||||
|
mock_mail.login.return_value = ("OK", [b"Login successful"])
|
||||||
|
mock_mail.select.return_value = ("OK", [b"1"])
|
||||||
mock_mail.search.return_value = ("OK", [b"1"])
|
mock_mail.search.return_value = ("OK", [b"1"])
|
||||||
mock_msg_bytes = b"From: New Sender <new@example.com>\nSubject: New Email\nMessage-ID: <new@new.com>\n\nHello"
|
mock_msg_bytes = b"From: New Sender <new@example.com>\nSubject: New Email\nMessage-ID: <new@new.com>\n\nHello"
|
||||||
mock_mail.fetch.return_value = ("OK", [(None, mock_msg_bytes)])
|
mock_mail.fetch.return_value = ("OK", [(None, mock_msg_bytes)])
|
||||||
@@ -195,6 +197,8 @@ def test_process_emails_no_move_or_read(mock_imap, db_session: Session):
|
|||||||
|
|
||||||
mock_mail = MagicMock()
|
mock_mail = MagicMock()
|
||||||
mock_imap.return_value = mock_mail
|
mock_imap.return_value = mock_mail
|
||||||
|
mock_mail.login.return_value = ("OK", [b"Login successful"])
|
||||||
|
mock_mail.select.return_value = ("OK", [b"1"])
|
||||||
mock_mail.search.return_value = ("OK", [b"1"])
|
mock_mail.search.return_value = ("OK", [b"1"])
|
||||||
mock_msg_bytes = b"From: newsletter@example.com\nSubject: Test Subject\nMessage-ID: <test@test.com>\n\nTest Body"
|
mock_msg_bytes = b"From: newsletter@example.com\nSubject: Test Subject\nMessage-ID: <test@test.com>\n\nTest Body"
|
||||||
mock_mail.fetch.return_value = ("OK", [(None, mock_msg_bytes)])
|
mock_mail.fetch.return_value = ("OK", [(None, mock_msg_bytes)])
|
||||||
@@ -235,6 +239,8 @@ def test_process_emails_avoids_duplicates(mock_imap, db_session: Session):
|
|||||||
|
|
||||||
mock_mail = MagicMock()
|
mock_mail = MagicMock()
|
||||||
mock_imap.return_value = mock_mail
|
mock_imap.return_value = mock_mail
|
||||||
|
mock_mail.login.return_value = ("OK", [b"Login successful"])
|
||||||
|
mock_mail.select.return_value = ("OK", [b"1"])
|
||||||
mock_mail.search.return_value = ("OK", [b"1"])
|
mock_mail.search.return_value = ("OK", [b"1"])
|
||||||
# This email has the same Message-ID as the one we just created
|
# This email has the same Message-ID as the one we just created
|
||||||
mock_msg_bytes = b"From: newsletter@example.com\nSubject: Test Subject\nMessage-ID: <existing@message.com>\n\nTest Body"
|
mock_msg_bytes = b"From: newsletter@example.com\nSubject: Test Subject\nMessage-ID: <existing@message.com>\n\nTest Body"
|
||||||
|
|||||||
Reference in New Issue
Block a user