diff talosnames/web.py @ 38:ef8590b55605

determine actually correct name extension
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 24 Jul 2012 11:12:07 -0700
parents c945731f06d0
children 10945dedde84
line wrap: on
line diff
--- a/talosnames/web.py	Mon Jul 23 16:09:44 2012 -0700
+++ b/talosnames/web.py	Tue Jul 24 11:12:07 2012 -0700
@@ -7,6 +7,7 @@
 import optparse
 import os
 import pprint
+import talos.test
 import tempita
 from api import TalosNames
 from subprocess import list2cmdline
@@ -42,6 +43,7 @@
         paint = {}
         chrome = {}
         graphserver = {}
+        test_type = {}
         for suite in suites:
             for test in tests.get(suite) or []:
                 config = self.api.talos_config(suite)
@@ -58,8 +60,20 @@
                 paint[suite] = _paint
                 chrome[suite] = _chrome
 
+                # determine test extension
+                # TODO: move this to api.py
+                testname = test
+                testobj = talos.test.test_dict[testname]
+                if issubclass(testobj, talos.test.TsBase):
+                    test_type.setdefault(suite, {})[test] = 'Startup Test'
+                elif issubclass(testobj, talos.test.PageloaderTest):
+                    test_type.setdefault(suite, {})[test] = 'Page Load Test'
+                    testname += extension
+                else:
+                    raise Exception
+
                 # get graphserver data
-                names = self.api.graphserver_name(test + extension)
+                names = self.api.graphserver_name(testname)
                 if names:
                     graphserver.setdefault(suite, {})[test] = [names]
                 else:
@@ -67,6 +81,7 @@
         self.data['graphserver'] = graphserver
         self.data['paint'] = paint
         self.data['chrome'] = chrome
+        self.data['test_type'] = test_type
 
     def __call__(self, environ, start_response):
         request = Request(environ)
@@ -82,11 +97,22 @@
 if __name__ == '__main__':
 
     parser = optparse.OptionParser()
+    parser.add_option('-o', '--output', dest='output',
+                      help="file to output to")
+    parser.add_option('-p', '--port', dest='port',
+                      default=8080, type='int',
+                      help="port to serve on")
     options, args = parser.parse_args()
 
-    from wsgiref import simple_server
     app = Handler()
-    server = simple_server.make_server(host='0.0.0.0', port=8080, app=app)
-    server.serve_forever()
+
+    if options.output:
+        f = file(options.output, 'w')
+        f.write(app.render())
+        f.close()
+    else:
+        from wsgiref import simple_server
+        server = simple_server.make_server(host='0.0.0.0', port=options.port, app=app)
+        server.serve_forever()