mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 07:56:16 +00:00
Added additional helper methods to TestData to eliminate overuse of make_path
This commit is contained in:
parent
7952b7368c
commit
7c87217bf4
@ -904,7 +904,7 @@ class TestResultsDiffer(object):
|
||||
Args:
|
||||
test_data: the TestData of the test being performed
|
||||
"""
|
||||
gold_dir = Emailer.make_path(test_config.img_gold, test_data.image_name, test_data.image_name + "SortedErrors.txt")
|
||||
gold_dir = test_data.get_sorted_errors_path(DBType.GOLD)
|
||||
common_log = codecs.open(test_data.sorted_log, "r", "utf_8")
|
||||
gold_log = codecs.open(gold_dir, "r", "utf_8")
|
||||
gold_dat = gold_log.read()
|
||||
@ -1039,6 +1039,8 @@ class TestData(object):
|
||||
common_log_path: a pathto_File, the IMAGE_NAMECOMMON_LOG file
|
||||
sorted_log: a pathto_File, the IMAGENAMESortedErrors.txt file
|
||||
reports_dir: a pathto_Dir, the AutopsyTestCase/Reports folder
|
||||
gold_data_dir: a pathto_Dir, the gold standard directory
|
||||
logs_dir: a pathto_Dir, the location where autopsy logs are stored
|
||||
total_test_time: a String representation of the test duration
|
||||
start_date: a String representation of this TestData's start date
|
||||
end_date: a String representation of the TestData's end date
|
||||
@ -1068,11 +1070,13 @@ class TestData(object):
|
||||
self.autopsy_data_file = Emailer.make_path(self.output_path, self.image_name + "Autopsy_data.txt")
|
||||
self.warning_log = Emailer.make_local_path(self.output_path, "AutopsyLogs.txt")
|
||||
self.antlog_dir = Emailer.make_local_path(self.output_path, "antlog.txt")
|
||||
self.test_dbdump = Emailer.make_path(self.output_path, self.image_name + "Dump.txt")
|
||||
self.test_dbdump = Emailer.make_path(self.output_path, self.image_name +
|
||||
"DBDump.txt")
|
||||
self.common_log_path = Emailer.make_local_path(self.output_path, self.image_name + COMMON_LOG)
|
||||
self.sorted_log = Emailer.make_local_path(self.output_path, self.image_name + "SortedErrors.txt")
|
||||
self.reports_dir = Emailer.make_path(self.output_path, AUTOPSY_TEST_CASE, "Reports")
|
||||
self.gold_data_dir = Emailer.make_path(self.main_config.img_gold, self.image_name)
|
||||
self.logs_dir = Emailer.make_path(self.output_path, "logs")
|
||||
self.total_test_time = ""
|
||||
self.start_date = ""
|
||||
self.end_date = ""
|
||||
@ -1145,13 +1149,39 @@ class TestData(object):
|
||||
"""Get the path to the SortedData file that corresponds to the given DBType.
|
||||
|
||||
Args:
|
||||
DBType: the DBType of the path to be generated
|
||||
file_type: the DBType of the path to be generated
|
||||
"""
|
||||
filename = self.image_name + "SortedData.txt"
|
||||
return self._get_path_to_file(file_type, "SortedData.txt")
|
||||
|
||||
def get_sorted_errors_path(self, file_type):
|
||||
"""Get the path to the SortedErrors file that correspodns to the given
|
||||
DBType.
|
||||
|
||||
Args:
|
||||
file_type: the DBType of the path to be generated
|
||||
"""
|
||||
return self._get_path_to_file(file_type, "SortedErrors.txt")
|
||||
|
||||
def get_db_dump_path(self, file_type):
|
||||
"""Get the path to the DBDump file that corresponds to the given DBType.
|
||||
|
||||
Args:
|
||||
file_type: the DBType of the path to be generated
|
||||
"""
|
||||
return self._get_path_to_file(file_type, "DBDump.txt")
|
||||
|
||||
def _get_path_to_file(self, file_type, file_name):
|
||||
"""Get the path to the specified file with the specified type.
|
||||
|
||||
Args:
|
||||
file_type: the DBType of the path to be generated
|
||||
file_name: a String, the filename of the path to be generated
|
||||
"""
|
||||
full_filename = self.image_name + file_name
|
||||
if(file_type == DBType.GOLD):
|
||||
return Emailer.make_path(self.gold_data_dir, filename)
|
||||
return Emailer.make_path(self.gold_data_dir, full_filename)
|
||||
else:
|
||||
return Emailer.make_path(self.output_path, filename)
|
||||
return Emailer.make_path(self.output_path, full_filename)
|
||||
|
||||
class Reports(object):
|
||||
def generate_reports(csv_path, database, test_data):
|
||||
@ -1201,7 +1231,7 @@ class Reports(object):
|
||||
logs = "<div id='logs'>\
|
||||
<h2><a name='" + test_data.image_name + "-logs'>Logs</a></h2>\
|
||||
<hr color='#282828'>"
|
||||
logs_path = Emailer.make_local_path(test_config.output_dir, test_data.image_name, "logs")
|
||||
logs_path = test_data.logs_dir
|
||||
for file in os.listdir(logs_path):
|
||||
logs += "<p><a href='file:\\" + Emailer.make_path(logs_path, file) + "' target='_blank'>" + file + "</a></p>"
|
||||
logs += "</div>"
|
||||
@ -1335,6 +1365,7 @@ class Reports(object):
|
||||
name = get_image_name(full_name)
|
||||
links.append("<a href='#" + name + "(0)'>" + name + "</a>")
|
||||
html.write("<p align='center'>" + (" | ".join(links)) + "</p>")
|
||||
html.close()
|
||||
|
||||
def _generate_csv(csv_path, database, test_data):
|
||||
"""Generate the CSV log file"""
|
||||
@ -1494,7 +1525,7 @@ class Logs(object):
|
||||
"""Fill the global test config's variables that require the log files."""
|
||||
try:
|
||||
# Open autopsy.log.0
|
||||
log_path = Emailer.make_path(test_config.output_dir, test_data.image_name, "logs", "autopsy.log.0")
|
||||
log_path = Emailer.make_path(test_data.logs_dir, "autopsy.log.0")
|
||||
log = open(log_path)
|
||||
|
||||
# Set the test_config starting time based off the first line of autopsy.log.0
|
||||
@ -1618,7 +1649,7 @@ def search_logs(string, test_data):
|
||||
Returns:
|
||||
a listof_String, the lines that contained the given String.
|
||||
"""
|
||||
logs_path = Emailer.make_local_path(test_config.output_dir, test_data.image_name, "logs")
|
||||
logs_path = test_data.logs_dir
|
||||
results = []
|
||||
for file in os.listdir(logs_path):
|
||||
log = codecs.open(Emailer.make_path(logs_path, file), "r", "utf_8")
|
||||
@ -1639,7 +1670,7 @@ def search_log(log, string, test_data):
|
||||
Returns:
|
||||
a listof_String, all the lines that the string is found on
|
||||
"""
|
||||
logs_path = Emailer.make_local_path(test_config.output_dir, test_data.image_name, "logs", log)
|
||||
logs_path = Emailer.make_path(test_data.logs_dir, log)
|
||||
try:
|
||||
results = []
|
||||
log = codecs.open(logs_path, "r", "utf_8")
|
||||
@ -1665,7 +1696,7 @@ def search_log_set(type, string, test_data):
|
||||
Returns:
|
||||
a listof_String, the lines on which the String was found.
|
||||
"""
|
||||
logs_path = Emailer.make_local_path(test_config.output_dir, test_data.image_name, "logs")
|
||||
logs_path = test_data.logs_dir
|
||||
results = []
|
||||
for file in os.listdir(logs_path):
|
||||
if type in file:
|
||||
@ -1734,7 +1765,7 @@ def get_exceptions(test_data):
|
||||
a listof_String, the exceptions found in the logs.
|
||||
"""
|
||||
exceptions = []
|
||||
logs_path = Emailer.make_path(test_config.output_dir, test_data.image_name, "logs")
|
||||
logs_path = test_data.logs_dir
|
||||
results = []
|
||||
for file in os.listdir(logs_path):
|
||||
if "autopsy.log" in file:
|
||||
@ -1764,7 +1795,7 @@ def get_warnings(test_data):
|
||||
def copy_logs(test_data):
|
||||
try:
|
||||
log_dir = os.path.join("..", "..", "Testing","build","test","qa-functional","work","userdir0","var","log")
|
||||
shutil.copytree(log_dir, Emailer.make_local_path(test_config.output_dir, test_data.image_name, "logs"))
|
||||
shutil.copytree(log_dir, test_data.logs_dir)
|
||||
except Exception as e:
|
||||
printerror(test_data,"Error: Failed to copy the logs.")
|
||||
printerror(test_data,str(e) + "\n")
|
||||
@ -1941,7 +1972,6 @@ class TestRunner(object):
|
||||
logres.append(TestRunner._run_test(test_data))
|
||||
|
||||
Reports.write_html_foot()
|
||||
html.close()
|
||||
if (len(logres)>0):
|
||||
failedbool = True
|
||||
imgfail = True
|
||||
@ -1949,12 +1979,13 @@ class TestRunner(object):
|
||||
for lm in logres:
|
||||
for ln in lm:
|
||||
errorem += ln
|
||||
html.close()
|
||||
if failedbool:
|
||||
passFail = False
|
||||
errorem += "The test output didn't match the gold standard.\n"
|
||||
errorem += "Autopsy test failed.\n"
|
||||
html = open(test_config.html_log)
|
||||
attachl.insert(0, html.name)
|
||||
html.close()
|
||||
else:
|
||||
errorem += "Autopsy test passed.\n"
|
||||
passFail = True
|
||||
@ -2082,21 +2113,19 @@ class TestRunner(object):
|
||||
gold_dir = test_config.img_gold
|
||||
clear_dir(test_config.img_gold)
|
||||
tmpdir = Emailer.make_path(gold_dir, test_data.image_name)
|
||||
dbinpth = Emailer.make_path(test_config.output_dir, test_data.image_name, AUTOPSY_TEST_CASE, DB_FILENAME)
|
||||
dbinpth = test_data.get_db_path(DBType.OUTPUT)
|
||||
dboutpth = Emailer.make_path(tmpdir, DB_FILENAME)
|
||||
dataoutpth = Emailer.make_path(tmpdir, test_data.image_name + "SortedData.txt")
|
||||
dbdumpinpth = test_data.test_dbdump
|
||||
dbdumpinpth = test_data.get_db_dump_path(DBType.OUTPUT)
|
||||
dbdumpoutpth = Emailer.make_path(tmpdir, test_data.image_name + "DBDump.txt")
|
||||
if not os.path.exists(test_config.img_gold):
|
||||
os.makedirs(test_config.img_gold)
|
||||
if not os.path.exists(gold_dir):
|
||||
os.makedirs(gold_dir)
|
||||
if not os.path.exists(tmpdir):
|
||||
os.makedirs(tmpdir)
|
||||
try:
|
||||
copy_file(dbinpth, dboutpth)
|
||||
if Emailer.file_exists(test_data.get_sorted_data_path(DBType.OUTPUT)):
|
||||
copy_file(test_data.get_sorted_data_path(DBType.OUTPUT, dataoutpth))
|
||||
copy_file(test_data.get_sorted_data_path(DBType.OUTPUT), dataoutpth)
|
||||
copy_file(dbdumpinpth, dbdumpoutpth)
|
||||
error_pth = Emailer.make_path(tmpdir, test_data.image_name+"SortedErrors.txt")
|
||||
copy_file(test_data.sorted_log, error_pth)
|
||||
@ -2105,22 +2134,13 @@ class TestRunner(object):
|
||||
print(str(e))
|
||||
print(traceback.format_exc())
|
||||
# Rebuild the HTML report
|
||||
htmlfolder = ""
|
||||
for fs in os.listdir(os.path.join(os.getcwd(),test_config.output_dir, test_data.image_name, AUTOPSY_TEST_CASE, "Reports")):
|
||||
if os.path.isdir(os.path.join(os.getcwd(), test_config.output_dir, test_data.image_name, AUTOPSY_TEST_CASE, "Reports", fs)):
|
||||
htmlfolder = fs
|
||||
autopsy_html_path = Emailer.make_local_path(test_config.output_dir, test_data.image_name, AUTOPSY_TEST_CASE, "Reports", htmlfolder)
|
||||
output_html_report_dir = test_data.get_html_report_path(DBType.OUTPUT)
|
||||
gold_html_report_dir = Emailer.make_path(tmpdir, "Report")
|
||||
|
||||
html_path = Emailer.make_path(test_config.output_dir, test_data.image_name,
|
||||
IMG_TEST_FOLDER, "Reports")
|
||||
try:
|
||||
if not os.path.exists(Emailer.make_path(tmpdir, htmlfolder)):
|
||||
os.makedirs(Emailer.make_path(tmpdir, htmlfolder))
|
||||
for file in os.listdir(autopsy_html_path):
|
||||
html_to = Emailer.make_path(tmpdir, file.replace("HTML Report", "Report"))
|
||||
copy_dir(get_file_in_dir(autopsy_html_path, file), html_to)
|
||||
copy_dir(output_html_report_dir, gold_html_report_dir)
|
||||
except FileNotFoundException as e:
|
||||
errors.append(e.error)
|
||||
errors.append(e.error())
|
||||
except Exception as e:
|
||||
errors.append("Error: Unknown fatal error when rebuilding the gold html report.")
|
||||
errors.append(str(e) + "\n")
|
||||
|
Loading…
x
Reference in New Issue
Block a user