Added some test-writing docs for plugins, but not sure if they're good. ;)
[mediagoblin.git] / mediagoblin / tools / mail.py
index 655d5b99d7065bf3b18003a41f12e2638cfa0c12..6886c859307fc9042703bbe7b70af4e89face393 100644 (file)
@@ -16,7 +16,7 @@
 
 import smtplib
 from email.MIMEText import MIMEText
-from mediagoblin import mg_globals
+from mediagoblin import mg_globals, messages
 from mediagoblin.tools import common
 
 ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -98,8 +98,9 @@ def send_email(from_addr, to_addrs, subject, message_body):
         if not mg_globals.app_config['email_smtp_host']:  # e.g. host = ''
             mhost.connect()  # We SMTP.connect explicitly
 
-    if mg_globals.app_config['email_smtp_user'] \
-            or mg_globals.app_config['email_smtp_pass']:
+    if ((not common.TESTS_ENABLED)
+        and (mg_globals.app_config['email_smtp_user']
+             or mg_globals.app_config['email_smtp_pass'])):
         mhost.login(
             mg_globals.app_config['email_smtp_user'],
             mg_globals.app_config['email_smtp_pass'])
@@ -112,7 +113,7 @@ def send_email(from_addr, to_addrs, subject, message_body):
     if common.TESTS_ENABLED:
         EMAIL_TEST_INBOX.append(message)
 
-    if mg_globals.app_config['email_debug_mode']:
+    elif mg_globals.app_config['email_debug_mode']:
         print u"===== Email ====="
         print u"From address: %s" % message['From']
         print u"To addresses: %s" % message['To']
@@ -121,3 +122,29 @@ def send_email(from_addr, to_addrs, subject, message_body):
         print message.get_payload(decode=True)
 
     return mhost.sendmail(from_addr, to_addrs, message.as_string())
+
+
+def normalize_email(email):
+    """return case sensitive part, lower case domain name
+
+    :returns: None in case of broken email addresses"""
+    try:
+        em_user, em_dom = email.split('@', 1)
+    except ValueError:
+        # email contained no '@'
+        return None
+    email = "@".join((em_user, em_dom.lower()))
+    return email
+
+
+def email_debug_message(request):
+    """
+    If the server is running in email debug mode (which is
+    the current default), give a debug message to the user
+    so that they have an idea where to find their email.
+    """
+    if mg_globals.app_config['email_debug_mode']:
+        # DEBUG message, no need to translate
+        messages.add_message(request, messages.DEBUG,
+            u"This instance is running in email debug mode. "
+            u"The email will be on the console of the server process.")