Home | History | Annotate | Download | only in dashboard_build
      1 # Copyright (c) 2015 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 import json
      6 import os
      7 
      8 import dashboard_project
      9 
     10 import webapp2
     11 from webapp2 import Route
     12 
     13 
     14 def _RelPathToUnixPath(p):
     15   return p.replace(os.sep, '/')
     16 
     17 
     18 class TestListHandler(webapp2.RequestHandler):
     19 
     20   def get(self, *args, **kwargs):  # pylint: disable=unused-argument
     21     project = dashboard_project.DashboardProject()
     22     test_relpaths = ['/' + _RelPathToUnixPath(x)
     23                      for x in project.FindAllTestModuleRelPaths()]
     24 
     25     tests = {'test_relpaths': test_relpaths}
     26     tests_as_json = json.dumps(tests)
     27     self.response.content_type = 'application/json'
     28     return self.response.write(tests_as_json)
     29 
     30 
     31 class DashboardDevServerConfig(object):
     32 
     33   def __init__(self):
     34     self.project = dashboard_project.DashboardProject()
     35 
     36   def GetName(self):
     37     return 'dashboard'
     38 
     39   def GetRunUnitTestsUrl(self):
     40     return '/dashboard/tests.html'
     41 
     42   def AddOptionstToArgParseGroup(self, g):
     43     g.add_argument('--dashboard-data-dir',
     44                    default=self.project.dashboard_test_data_path)
     45 
     46   def GetRoutes(self, args):  # pylint: disable=unused-argument
     47     return [
     48         Route('/dashboard/tests', TestListHandler),
     49     ]
     50 
     51   def GetSourcePaths(self, args):  # pylint: disable=unused-argument
     52     return list(self.project.source_paths)
     53 
     54   def GetTestDataPaths(self, args):  # pylint: disable=unused-argument
     55     return [
     56         ('/dashboard/test_data/', args.data_dir),
     57     ]
     58