Thank you very much. This fixes the Unicode error for me. For the series: Tested-by: Marek Olšák <[email protected]>
Please let me know if you still need the problematic results file. Marek On Fri, Mar 25, 2016 at 10:28 PM, Dylan Baker <[email protected]> wrote: > Things changes the behavior of Mako to provide utf-8 encoded templates > in bytes representation, and to just directly write the rendered > template that way. This gives python 2.x and 3.x identical behavior when > handling non ascii characters in test run names. > > Signed-off-by: Dylan Baker <[email protected]> > --- > framework/summary/html_.py | 17 ++++++++++++----- > 1 file changed, 12 insertions(+), 5 deletions(-) > > diff --git a/framework/summary/html_.py b/framework/summary/html_.py > index 2c0f72f..2783cf1 100644 > --- a/framework/summary/html_.py > +++ b/framework/summary/html_.py > @@ -51,9 +51,16 @@ _TEMP_DIR = os.path.join( > tempfile.gettempdir(), > "piglit-{}".format(getpass.getuser()), > 'version-{}'.format(sys.version.split()[0])) > + > _TEMPLATE_DIR = os.path.join(os.path.dirname(__file__), '../..', 'templates') > + > +# To eas the bytes/str/uincode between python 2 and python 3 the > +# output_encoding is set below. This means that in both python 2 and 3 bytes > +# are returned. This means that the files need to be opened in bytes mode > +# ('wb'). > _TEMPLATES = TemplateLookup( > _TEMPLATE_DIR, > + output_encoding='utf-8', > module_directory=os.path.join(_TEMP_DIR, "html-summary")) > > > @@ -85,7 +92,7 @@ def _make_testrun_info(results, destination, exclude=None): > else: > raise e > > - with open(os.path.join(destination, name, "index.html"), 'w') as out: > + with open(os.path.join(destination, name, "index.html"), 'wb') as > out: > out.write(_TEMPLATES.get_template('testrun_info.mako').render( > name=each.name, > totals=each.totals['root'], > @@ -109,7 +116,7 @@ def _make_testrun_info(results, destination, > exclude=None): > if not os.path.exists(temp_path): > os.makedirs(temp_path) > > - with open(html_path, 'w') as out: > + with open(html_path, 'wb') as out: > out.write(_TEMPLATES.get_template( > 'test_result.mako').render( > testname=key, > @@ -126,7 +133,7 @@ def _make_comparison_pages(results, destination, exclude): > # 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, changes, and page=changes. > - with open(os.path.join(destination, "index.html"), 'w') as out: > + with open(os.path.join(destination, "index.html"), 'wb') as out: > out.write(_TEMPLATES.get_template('index.mako').render( > results=results, > page='all', > @@ -135,7 +142,7 @@ def _make_comparison_pages(results, destination, exclude): > > # Generate the rest of the pages > for page in pages: > - with open(os.path.join(destination, page + '.html'), 'w') as out: > + with open(os.path.join(destination, page + '.html'), 'wb') as out: > # If there is information to display display it > if sum(getattr(results.counts, page)) > 0: > out.write(_TEMPLATES.get_template('index.mako').render( > @@ -153,7 +160,7 @@ def _make_comparison_pages(results, destination, exclude): > def _make_feature_info(results, destination): > """Create the feature readiness page.""" > > - with open(os.path.join(destination, "feature.html"), 'w') as out: > + with open(os.path.join(destination, "feature.html"), 'wb') as out: > out.write(_TEMPLATES.get_template('feature.mako').render( > results=results)) > > -- > 2.7.4 > _______________________________________________ Piglit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/piglit
