| # Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import json |
| import os |
| |
| import tracing_project |
| |
| |
| import webapp2 |
| from webapp2 import Route |
| |
| |
| def _RelPathToUnixPath(p): |
| return p.replace(os.sep, '/') |
| |
| |
| class TestListHandler(webapp2.RequestHandler): |
| |
| def get(self, *args, **kwargs): # pylint: disable=unused-argument |
| project = tracing_project.TracingProject() |
| test_relpaths = ['/' + _RelPathToUnixPath(x) |
| for x in project.FindAllTestModuleRelPaths()] |
| |
| tests = {'test_relpaths': test_relpaths} |
| tests_as_json = json.dumps(tests) |
| self.response.content_type = 'application/json' |
| return self.response.write(tests_as_json) |
| |
| |
| class TracingDevServerConfig(object): |
| |
| def __init__(self): |
| self.project = tracing_project.TracingProject() |
| |
| def GetName(self): |
| return 'tracing' |
| |
| def GetRunUnitTestsUrl(self): |
| return '/tracing/tests.html' |
| |
| def AddOptionstToArgParseGroup(self, g): |
| g.add_argument('-d', '--data-dir', default=self.project.test_data_path) |
| g.add_argument('-s', '--skp-data-dir', default=self.project.skp_data_path) |
| |
| def GetRoutes(self, args): # pylint: disable=unused-argument |
| return [Route('/tracing/tests', TestListHandler)] |
| |
| def GetSourcePaths(self, args): # pylint: disable=unused-argument |
| return list(self.project.source_paths) |
| |
| def GetTestDataPaths(self, args): # pylint: disable=unused-argument |
| return [ |
| ('/tracing/test_data/', os.path.expanduser(args.data_dir)), |
| ('/tracing/skp_data/', os.path.expanduser(args.skp_data_dir)), |
| ] |