[Piglit] [PATCH 1/6] Summary.py: use mako's TemplateLookup class
Dylan Baker
baker.dylan.c at gmail.com
Mon Nov 4 08:53:42 PST 2013
This change reduces code duplication by setting arguments to the
templates to be set once, rather than once per template.
Signed-off-by: Dylan Baker <baker.dylan.c at gmail.com>
---
framework/summary.py | 56 ++++++++++++++++++++++------------------------------
1 file changed, 24 insertions(+), 32 deletions(-)
diff --git a/framework/summary.py b/framework/summary.py
index eaba2b3..0e47e9e 100644
--- a/framework/summary.py
+++ b/framework/summary.py
@@ -24,7 +24,7 @@ import os.path as path
import itertools
import shutil
import collections
-from mako.template import Template
+from mako.lookup import TemplateLookup
# a local variable status exists, prevent accidental overloading by renaming
# the module
@@ -345,20 +345,21 @@ class Summary:
of dicts, which mako turns into pretty HTML.
"""
+ # Lookup all templates in the template dir
+ templates = TemplateLookup(directories=["templates"],
+ output_encoding="utf-8",
+ module_directory=".makotmp")
+
+ # Load the necissary templates
+ testindex = templates.get_template("testrun_info.mako")
+ testfile = templates.get_template("test_result.mako")
+ makoindex = templates.get_template("index.mako")
+ empty_status = templates.get_template("empty_status.mako")
+
# Copy static files
shutil.copy("templates/index.css", path.join(destination, "index.css"))
shutil.copy("templates/result.css", path.join(destination, "result.css"))
- # Create the mako object for creating the test/index.html file
- testindex = Template(filename="templates/testrun_info.mako",
- output_encoding="utf-8",
- module_directory=".makotmp")
-
- # Create the mako object for the individual result files
- testfile = Template(filename="templates/test_result.mako",
- output_encoding="utf-8",
- module_directory=".makotmp")
-
result_css = path.join(destination, "result.css")
index = path.join(destination, "index.html")
@@ -399,43 +400,34 @@ class Summary:
index=path.relpath(index, temp_path)))
# Finally build the root html files: index, regressions, etc
- index = Template(filename="templates/index.mako",
- output_encoding="utf-8",
- module_directory=".makotmp")
-
- empty_status = Template(filename="templates/empty_status.mako",
- output_encoding="utf-8",
- module_directory=".makotmp")
-
pages = ('changes', 'problems', 'skipped', 'fixes', 'regressions')
# Index.html is a bit of a special case since there is index, all, and
# alltests, where the other pages all use the same name. ie,
# changes.html, self.changes, and page=changes.
with open(path.join(destination, "index.html"), 'w') as out:
- out.write(index.render(results=HTMLIndex(self, self.tests['all']),
- page='all',
- pages=pages,
- colnum=len(self.results),
- exclude=exclude))
+ out.write(makoindex.render(results=HTMLIndex(self, self.tests['all']),
+ page='all',
+ pages=pages,
+ colnum=len(self.results),
+ exclude=exclude))
# Generate the rest of the pages
for page in pages:
- with open(path.join(destination, page + '.html'), 'w') as out:
# If there is information to display display it
+ with open(path.join(destination, page + '.html'), 'w') as out:
if self.tests[page]:
- out.write(index.render(results=HTMLIndex(self,
- self.tests[page]),
- pages=pages,
- page=page,
- colnum=len(self.results),
- exclude=exclude))
+ out.write(makoindex.render(
+ results=HTMLIndex(self, self.tests[page]),
+ pages=pages,
+ page=page,
+ colnum=len(self.results),
+ exclude=exclude))
# otherwise provide an empty page
else:
out.write(empty_status.render(page=page, pages=pages))
def generate_text(self, diff, summary):
- """ Write summary information to the console """
self.__find_totals()
# Print the name of the test and the status from each test run
--
1.8.1.5
More information about the Piglit
mailing list