comparison 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
comparison
equal deleted inserted replaced
37:0d5cd3dccbec 38:ef8590b55605
5 """ 5 """
6 6
7 import optparse 7 import optparse
8 import os 8 import os
9 import pprint 9 import pprint
10 import talos.test
10 import tempita 11 import tempita
11 from api import TalosNames 12 from api import TalosNames
12 from subprocess import list2cmdline 13 from subprocess import list2cmdline
13 from webob import Request, Response, exc 14 from webob import Request, Response, exc
14 15
40 } 41 }
41 42
42 paint = {} 43 paint = {}
43 chrome = {} 44 chrome = {}
44 graphserver = {} 45 graphserver = {}
46 test_type = {}
45 for suite in suites: 47 for suite in suites:
46 for test in tests.get(suite) or []: 48 for test in tests.get(suite) or []:
47 config = self.api.talos_config(suite) 49 config = self.api.talos_config(suite)
48 _paint = '--mozAfterPaint' in self.data['commands'][suite] 50 _paint = '--mozAfterPaint' in self.data['commands'][suite]
49 _chrome = '--noChrome' not in self.data['commands'][suite] 51 _chrome = '--noChrome' not in self.data['commands'][suite]
56 if extension != _extension: 58 if extension != _extension:
57 raise AssertionError 59 raise AssertionError
58 paint[suite] = _paint 60 paint[suite] = _paint
59 chrome[suite] = _chrome 61 chrome[suite] = _chrome
60 62
63 # determine test extension
64 # TODO: move this to api.py
65 testname = test
66 testobj = talos.test.test_dict[testname]
67 if issubclass(testobj, talos.test.TsBase):
68 test_type.setdefault(suite, {})[test] = 'Startup Test'
69 elif issubclass(testobj, talos.test.PageloaderTest):
70 test_type.setdefault(suite, {})[test] = 'Page Load Test'
71 testname += extension
72 else:
73 raise Exception
74
61 # get graphserver data 75 # get graphserver data
62 names = self.api.graphserver_name(test + extension) 76 names = self.api.graphserver_name(testname)
63 if names: 77 if names:
64 graphserver.setdefault(suite, {})[test] = [names] 78 graphserver.setdefault(suite, {})[test] = [names]
65 else: 79 else:
66 graphserver.setdefault(suite, {})[test] = None 80 graphserver.setdefault(suite, {})[test] = None
67 self.data['graphserver'] = graphserver 81 self.data['graphserver'] = graphserver
68 self.data['paint'] = paint 82 self.data['paint'] = paint
69 self.data['chrome'] = chrome 83 self.data['chrome'] = chrome
84 self.data['test_type'] = test_type
70 85
71 def __call__(self, environ, start_response): 86 def __call__(self, environ, start_response):
72 request = Request(environ) 87 request = Request(environ)
73 response = Response(content_type='text/html', 88 response = Response(content_type='text/html',
74 body=self.render()) 89 body=self.render())
80 return _template.substitute(self.data) 95 return _template.substitute(self.data)
81 96
82 if __name__ == '__main__': 97 if __name__ == '__main__':
83 98
84 parser = optparse.OptionParser() 99 parser = optparse.OptionParser()
100 parser.add_option('-o', '--output', dest='output',
101 help="file to output to")
102 parser.add_option('-p', '--port', dest='port',
103 default=8080, type='int',
104 help="port to serve on")
85 options, args = parser.parse_args() 105 options, args = parser.parse_args()
86 106
87 from wsgiref import simple_server
88 app = Handler() 107 app = Handler()
89 server = simple_server.make_server(host='0.0.0.0', port=8080, app=app) 108
90 server.serve_forever() 109 if options.output:
110 f = file(options.output, 'w')
111 f.write(app.render())
112 f.close()
113 else:
114 from wsgiref import simple_server
115 server = simple_server.make_server(host='0.0.0.0', port=options.port, app=app)
116 server.serve_forever()
91 117
92 118