Mercurial > mozilla > hg > talosnames
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 |