Skip to content

Instantly share code, notes, and snippets.

@saltnlight5
Last active October 10, 2015 09:07
Show Gist options
  • Save saltnlight5/3666286 to your computer and use it in GitHub Desktop.
Save saltnlight5/3666286 to your computer and use it in GitHub Desktop.
Python Scripts
import smtplib
message = """From: test@test.com
To: zemian.deng@mycompany.com
Subject: SMTP e-mail test
This is a test e-mail message.
"""
s = smtplib.SMTP('smtp.mycompany.com')
s.sendmail("test@test.com", ["zemian.deng@mycompany.com"], message)
s.quit()
#!/usr/bin/python
#
# check-emma.py <report_url>
# Check EMMA coverage report and print any abnormal condition is found
#
# Zemian Deng 2010.11.21
#
import os.path, sys, re, urllib
def read(report):
if os.path.isfile(report):
f = open(report)
ret = f.read()
f.close()
return ret
else:
f = urllib.urlopen(report)
ret = f.read()
f.close()
return ret
class Coverage(object):
def __cmp__(self, that):
ret = cmp(int(self.cls_percent_covered), int(that.cls_percent_covered))
if (ret == 0):
ret = cmp(
int(self.meth_percent_covered),
int(that.meth_percent_covered))
return ret
def emma_report(report):
coverages = []
text = read(report)
tr_pattern = r'<TR( CLASS="o"){0,1}><TD><A HREF="_files/.+?\.html">(.+?)</A></TD>(.+?)</TR>'
td_pattern = r'<TD( CLASS="h"){0,1}>(\d+?)%.*?(\d+?)/(\d+?)\)</TD>'
trlist = re.findall(tr_pattern, text, re.S)
for tr in trlist:
td_list = re.findall(td_pattern, tr[2], re.S)
if len(td_list) >= 2:
cov = Coverage()
cov.pkg = tr[1]
cov.cls_percent_covered = td_list[0][1]
cov.cls_covered_lines = td_list[0][2]
cov.cls_total_lines = td_list[0][3]
cov.meth_percent_covered = td_list[1][1]
cov.meth_covered_lines = td_list[1][2]
cov.meth_total_lines = td_list[1][3]
if int(cov.cls_percent_covered) < 80 or int(cov.meth_percent_covered) < 80:
coverages.append(cov)
if len(coverages) <= 0:
return
#print 'EMMA report - number of classes or methods below 50% code coverage:'
print "%s\t%s\t%s" % ('PACKAGE', 'CLASS', 'METHOD')
coverages.sort()
for c in coverages:
print "%s\t%s\t%s" % (c.pkg,
c.cls_percent_covered+'% ('+c.cls_covered_lines+'/'+c.cls_total_lines+')',
c.meth_percent_covered+'% ('+c.meth_covered_lines+'/'+c.meth_total_lines+')')
# Main script entry
report_url = 'target/site/emma/index.html'
if len(sys.argv) > 1:
report_url = sys.argv[1]
emma_report(report_url)
import sys
print(sys.version)
import os
print(os.getcwd())
print(os.listdir('.'))
import os.path
print(os.path.abspath('/'))
print(os.path.abspath('C:/projects'))
print(os.path.abspath('~'))
print(os.path.abspath(os.path.expanduser('~')))
print(os.listdir('C:/projects'))
print(os.listdir('C:\\projects'))
import glob, os
for fn in glob.glob('./*.markdown'):
fn2 = fn.replace('.markdown', '.md')
os.rename(fn, fn2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment