From 68659c55193f055d1d73a7d1cdc9fa2469865c74 Mon Sep 17 00:00:00 2001 From: "Chinmay D. Pai" Date: Sat, 4 Jan 2020 11:51:49 +0530 Subject: [PATCH 1/2] fix(email): define email_server before condition fixes issue where email_server is unhandled in test Traceback (most recent call last): File "/home/chnmy/workspace/frappe/benches/master-bench/apps/frappe/frappe/email/doctype/email_account/test_email_account.py", line 44, in test_unread_notification self.test_incoming() File "/home/chnmy/workspace/frappe/benches/master-bench/apps/frappe/frappe/email/doctype/email_account/test_email_account.py", line 35, in test_incoming email_account.receive(test_mails=test_mails) File "/home/chnmy/workspace/frappe/benches/master-bench/apps/frappe/frappe/email/doctype/email_account/email_account.py", line 291, in receive self.handle_bad_emails(email_server, uid, msg, frappe.get_traceback()) UnboundLocalError: local variable 'email_server' referenced before assignment Signed-off-by: Chinmay D. Pai --- frappe/email/doctype/email_account/email_account.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/email/doctype/email_account/email_account.py b/frappe/email/doctype/email_account/email_account.py index 50daf1cf72..7b19ddccc6 100755 --- a/frappe/email/doctype/email_account/email_account.py +++ b/frappe/email/doctype/email_account/email_account.py @@ -247,13 +247,13 @@ class EmailAccount(Document): exceptions = [] seen_status = [] uid_reindexed = False + email_server = None if frappe.local.flags.in_test: incoming_mails = test_mails else: email_sync_rule = self.build_email_sync_rule() - email_server = None try: email_server = self.get_incoming_server(in_receive=True, email_sync_rule=email_sync_rule) except Exception: From ba9d6020e65e8dc248ca80e2821adfe832c9c2fd Mon Sep 17 00:00:00 2001 From: "Chinmay D. Pai" Date: Sat, 4 Jan 2020 12:19:57 +0530 Subject: [PATCH 2/2] chore: check if email_server exists before handling bad emails Signed-off-by: Chinmay D. Pai --- frappe/email/doctype/email_account/email_account.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/email/doctype/email_account/email_account.py b/frappe/email/doctype/email_account/email_account.py index 7b19ddccc6..337bfac79b 100755 --- a/frappe/email/doctype/email_account/email_account.py +++ b/frappe/email/doctype/email_account/email_account.py @@ -305,7 +305,7 @@ class EmailAccount(Document): raise Exception(frappe.as_json(exceptions)) def handle_bad_emails(self, email_server, uid, raw, reason): - if cint(email_server.settings.use_imap): + if email_server and cint(email_server.settings.use_imap): import email try: mail = email.message_from_string(raw)