Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit de26a31

Browse files
committed
more enhancements - issue #311
1 parent a7cab63 commit de26a31

1 file changed

Lines changed: 26 additions & 17 deletions

File tree

extra/shutils/regressiontest.py

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,47 +13,55 @@
1313

1414
from email.mime.text import MIMEText
1515

16-
TIME = time.strftime("%H:%M:%S", time.gmtime())
17-
DATE = time.strftime("%d-%m-%Y", time.gmtime())
16+
TIME = time.strftime("%H:%M:%S %d-%m-%Y", time.gmtime())
1817

19-
SMTP_SERVER = "10.129.121.194"
18+
SMTP_SERVER = "127.0.0.1"
2019
SMTP_PORT = 25
2120
SMTP_TIMEOUT = 30
2221
23-
24-
SUBJECT = "Regression test results - started at %s on %s" % (TIME, DATE)
22+
23+
SUBJECT = "Regression test results on on %s" % TIME
2524
CONTENT = ""
25+
TEST_COUNTS = []
2626

2727
command_line = "cd ../../ ; rm -f $REGRESSION_FILE ; python sqlmap.py --live-test --run-case 'Invalid logic'"
2828
proc = subprocess.Popen(command_line, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
2929
proc.wait()
3030
stdout, stderr = proc.communicate()
31-
failed_tests = re.findall("running live test case: (.+?) \(\d+\/\d+\)[\r]*\n.+test failed (.*?)at parsing item: (.+) \- scan folder is (\/.+)[\r]*\n", stdout, re.I | re.M)
31+
failed_tests = re.findall("running live test case: (.+?) \((\d+)\/\d+\)[\r]*\n(.+?)test failed (.*?)at parsing item: (.+) \- scan folder is (\/.+)[\r]*\n", stdout, re.I | re.M)
3232

3333
for failed_test in failed_tests:
3434
title = failed_test[0]
35-
traceback = failed_test[1] or None
36-
parse = failed_test[2]
37-
output_folder = failed_test[3]
35+
test_count = failed_test[1]
36+
error = True if "the test did not identify the SQL injection" in failed_test[2] else False
37+
traceback = failed_test[2] or None
38+
parse = failed_test[3]
39+
output_folder = failed_test[4]
40+
41+
TEST_COUNTS.append(test_count)
3842

3943
console_output_fd = codecs.open(os.path.join(output_folder, "console_output"), "rb", "utf8")
4044
console_output = console_output_fd.read()
4145
console_output_fd.close()
4246

43-
log_fd = codecs.open(os.path.join(output_folder, "debiandev", "log"), "rb", "utf8")
44-
log = log_fd.read()
45-
log_fd.close()
47+
if error is False:
48+
log_fd = codecs.open(os.path.join(output_folder, "debiandev", "log"), "rb", "utf8")
49+
log = log_fd.read()
50+
log_fd.close()
4651

4752
if traceback:
4853
traceback_fd = codecs.open(os.path.join(output_folder, "traceback"), "rb", "utf8")
4954
traceback = traceback_fd.read()
5055
traceback_fd.close()
5156

5257
CONTENT += "Failed test case '%s' at parsing: %s:\n\n" % (title, parse)
53-
CONTENT += "### LOG FILE:\n\n"
54-
CONTENT += "%s\n" % log
55-
CONTENT += "### CONSOLE OUTPUT\n\n"
56-
CONTENT += "%s\n" % str(console_output)
58+
59+
if error is False:
60+
CONTENT += "### LOG FILE:\n\n"
61+
CONTENT += "%s\n" % log
62+
else:
63+
CONTENT += "### CONSOLE OUTPUT\n\n"
64+
CONTENT += "%s\n" % str(console_output)
5765

5866
if traceback:
5967
CONTENT += "### TRACEBACK:\n"
@@ -62,12 +70,13 @@
6270
CONTENT += "\n#######################################\n\n"
6371

6472
if CONTENT:
73+
SUBJECT += " (%s)" % ", ".join("#%d" % count for count in TEST_COUNTS)
6574
msg = MIMEText(CONTENT)
6675
msg["Subject"] = SUBJECT
6776
msg["From"] = FROM
6877
msg["To"] = TO
6978

7079
s = smtplib.SMTP(host=SMTP_SERVER, port=SMTP_PORT, timeout=SMTP_TIMEOUT)
7180
#s.set_debuglevel(1)
72-
s.sendmail(FROM, TO, msg)
81+
s.sendmail(FROM, TO, msg.as_string())
7382
s.quit()

0 commit comments

Comments
 (0)