[Erp5-report] r11089 - /erp5/trunk/products/ERP5Type/tests/sendMailToList

nobody at svn.erp5.org nobody at svn.erp5.org
Sat Nov 4 15:41:13 CET 2006


Author: jerome
Date: Sat Nov  4 15:41:08 2006
New Revision: 11089

URL: http://svn.erp5.org?rev=11089&view=rev
Log:
Display svn revision, number of test runs, failures and error on the subject line.


Modified:
    erp5/trunk/products/ERP5Type/tests/sendMailToList

Modified: erp5/trunk/products/ERP5Type/tests/sendMailToList
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/sendMailToList?rev=11089&r1=11088&r2=11089&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/sendMailToList (original)
+++ erp5/trunk/products/ERP5Type/tests/sendMailToList Sat Nov  4 15:41:08 2006
@@ -1,6 +1,7 @@
 #!/usr/bin/python
 
 import smtplib
+import re
 from datetime import date
 from email.MIMEText import MIMEText
 from email.MIMEBase import MIMEBase
@@ -24,22 +25,49 @@
 
 test_msg = file("%s/Products/test_output" % (ZOPE_INSTANCE),'r').read()
 test_msg = "Date : %s\n\n" % date.today().isoformat() + test_msg
-#msg.set_payload(test_msg)
+
+# minimal parsing 
+revision_re = re.compile('Revision: (?P<revision>\d+)')
+ran_test_re = re.compile('Ran (?P<tests>\d+) tests')
+errors_re = re.compile('FAILED \((failures=(?P<failures>\d+))*[, ]*'\
+                       '(errors=(?P<errors>\d+))*\)')
+svn_revision = "?"
+test_runs = 0
+errors = 0
+failures = 0
+for test_line in test_msg.splitlines():
+  revision = revision_re.match(test_line)
+  if revision:
+    svn_revision = revision.groupdict()['revision']
+  ran = ran_test_re.match(test_line)
+  if ran:
+    test_runs += int(ran.groupdict()['tests'])
+  errors_or_failures = errors_re.match(test_line)
+  if errors_or_failures:
+    failures += int(errors_or_failures.groupdict()['failures'] or 0)
+    errors += int(errors_or_failures.groupdict()['errors'] or 0)
+
+subject = "ERP5 r%s: %s Tests, %s Errors, %s Failures" % (
+                                  svn_revision, test_runs, errors, failures)
+
 msg = MIMEMultipart()
 msg['Subject'] = subject
 msg['From']    = from_mail
 msg['To']      = COMMASPACE.join(to_mail)
-#msg['content-type']=test_msg
 
 # Guarantees the message ends in a newline
 msg.preamble = subject
 msg.epilogue = ''
-file_content = file("%s/Products/test_full_output" % (ZOPE_INSTANCE),'r').read()
+file_content = file("%s/Products/test_full_output" %
+                    (ZOPE_INSTANCE),'r').read()
+
 mime_text = MIMEText(test_msg)
-mime_text.add_header('Content-Disposition', 'attachment', filename='test_output')
+mime_text.add_header('Content-Disposition', 'attachment',
+                     filename='test_output')
 msg.attach(mime_text)
 mime_text = MIMEText(file_content)
-mime_text.add_header('Content-Disposition', 'attachment', filename='test_full_output')
+mime_text.add_header('Content-Disposition', 'attachment',
+                     filename='test_full_output')
 msg.attach(mime_text)
 
 # Send the email via our own SMTP server.




More information about the Erp5-report mailing list