Fix a bug in mail_utils.send_email_with_files
authorChristian Herdtweck <christian.herdtweck@intra2net.com>
Tue, 16 Apr 2019 09:03:54 +0000 (11:03 +0200)
committerChristian Herdtweck <christian.herdtweck@intra2net.com>
Tue, 16 Apr 2019 09:03:54 +0000 (11:03 +0200)
Implementation had assumed that isinstance(bool, int) is False. But bool
is a subclass of int, therefore logic did not work

src/mail_utils.py

index 75c4bb5..0288c04 100644 (file)
@@ -476,10 +476,13 @@ class MailValidator():
         with smtplib.SMTP('localhost') as server:
             server.sendmail(self.smtp_sender, user, msg.as_string())
 
-        if isinstance(wait_for_transfer, int):
-            arnied_wrapper.wait_for_email_transfer(timeout=wait_for_transfer)
-        elif wait_for_transfer:
+        # wait for transfer; complicated by isinstance(False, int) == True
+        if wait_for_transfer is False:
+            pass
+        elif wait_for_transfer is True:
             arnied_wrapper.wait_for_email_transfer()
+        else:
+            arnied_wrapper.wait_for_email_transfer(timeout=wait_for_transfer)
 
     def _extract_email_paths(self, path, emails, timeout):
         """Check and return the absolute paths of a list of emails."""