diff --git a/product/ERP5Type/tests/sendMailToList b/product/ERP5Type/tests/sendMailToList index e5848b5c8a2a904035b9a8f3b82eb42cbfc4c603..7b59f33866e2f8707e60502a3203a633c09a3a56 100755 --- a/product/ERP5Type/tests/sendMailToList +++ b/product/ERP5Type/tests/sendMailToList @@ -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 @@ to_mail = [ 'erp5-report@nexedi.com' 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.