# 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)), ]