1# Copyright 2013 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5"""Request handler to display the debug view for a Failure.""" 6 7import jinja2 8import os 9import sys 10import webapp2 11 12from common import ispy_utils 13 14import views 15 16JINJA = jinja2.Environment( 17 loader=jinja2.FileSystemLoader(os.path.dirname(views.__file__)), 18 extensions=['jinja2.ext.autoescape']) 19 20 21class DebugViewHandler(webapp2.RequestHandler): 22 """Request handler to display the debug view for a failure.""" 23 24 def get(self): 25 """Handles get requests to the /debug_view page. 26 27 GET Parameters: 28 test_run: The test run. 29 expectation: The expectation name. 30 """ 31 test_run = self.request.get('test_run') 32 expectation = self.request.get('expectation') 33 expected_path = ispy_utils.GetExpectationPath(expectation, 'expected.png') 34 actual_path = ispy_utils.GetFailurePath(test_run, expectation, 'actual.png') 35 data = {} 36 37 def _ImagePath(url): 38 return '/image?file_path=%s' % url 39 40 data['expected'] = _ImagePath(expected_path) 41 data['actual'] = _ImagePath(actual_path) 42 data['test_run'] = test_run 43 data['expectation'] = expectation 44 template = JINJA.get_template('debug_view.html') 45 self.response.write(template.render(data)) 46