blob: fcd0a1a9f1f2ad566b3c5fb9516aa73637461ae9 [file] [log] [blame]
# 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)),
]