# 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 dashboard_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 = dashboard_project.DashboardProject()
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 DashboardDevServerConfig(object):
def __init__(self):
self.project = dashboard_project.DashboardProject()
def GetName(self):
return 'dashboard'
def GetRunUnitTestsUrl(self):
return '/dashboard/tests.html'
def AddOptionstToArgParseGroup(self, g):
g.add_argument('--dashboard-data-dir',
default=self.project.dashboard_test_data_path)
def GetRoutes(self, args): # pylint: disable=unused-argument
return [
Route('/dashboard/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 [
('/dashboard/test_data/', args.data_dir),
]