Mercurial > hg > toolbox
annotate test/test.py @ 16:d0ad67182478
py3
| author | Jeff Hammel <k0scist@gmail.com> | 
|---|---|
| date | Tue, 24 Nov 2020 13:14:27 -0800 | 
| parents | b0942f44413f | 
| children | 
| rev | line source | 
|---|---|
| 
0
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
1 #!/usr/bin/env python | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
2 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
3 """ | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
4 doctest runner for toolbox | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
5 """ | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
6 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
7 import doctest | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
8 import json | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
9 import os | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
10 import shutil | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
11 import sys | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
12 from cgi import escape | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
13 from optparse import OptionParser | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
14 from paste.fixture import TestApp | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
15 from time import time | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
16 from toolbox.dispatcher import Dispatcher | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
17 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
18 # global | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
19 directory = os.path.dirname(os.path.abspath(__file__)) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
20 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
21 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
22 class ToolboxTestApp(TestApp): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
23 """WSGI app wrapper for testing JSON responses""" | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
24 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
25 def __init__(self, **kw): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
26 dispatcher_args = dict(model_type='memory_cache', fields=('usage', 'author', 'type', 'language', 'dependencies')) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
27 dispatcher_args.update(kw) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
28 app = Dispatcher(**dispatcher_args) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
29 TestApp.__init__(self, app) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
30 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
31 def get(self, url='/', **kwargs): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
32 kwargs.setdefault('params', {})['format'] = 'json' | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
33 response = TestApp.get(self, url, **kwargs) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
34 return json.loads(response.body) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
35 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
36 def new(self, **kwargs): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
37 kwargs['form-render-date'] = str(time()) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
38 return self.post('/new', params=kwargs) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
39 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
40 def cleanup(self): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
41 pass | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
42 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
43 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
44 class FileCacheTestApp(ToolboxTestApp): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
45 """test the MemoryCache file-backed backend""" | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
46 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
47 def __init__(self): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
48 self.json_dir = os.path.join(directory, 'test_json') | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
49 shutil.rmtree(self.json_dir, ignore_errors=True) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
50 os.makedirs(self.json_dir) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
51 ToolboxTestApp.__init__(self, model_type='file_cache', directory=self.json_dir) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
52 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
53 def cleanup(self): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
54 shutil.rmtree(self.json_dir, ignore_errors=True) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
55 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
56 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
57 class CouchTestApp(ToolboxTestApp): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
58 """test the MemoryCache file-backed backend""" | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
59 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
60 def __init__(self): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
61 ToolboxTestApp.__init__(self, model_type='couch', dbname='test_json') | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
62 for project in self.app.model.projects(): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
63 self.app.model.delete(project) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
64 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
65 def cleanup(self): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
66 for project in self.app.model.projects(): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
67 self.app.model.delete(project) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
68 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
69 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
70 app_classes = {'memory_cache': ToolboxTestApp, | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
71 'file_cache': FileCacheTestApp, | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
72 'couch': CouchTestApp} | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
73 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
74 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
75 def run_tests(app_cls, | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
76 raise_on_error=False, | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
77 cleanup=True, | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
78 report_first=False, | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
79 output=sys.stdout): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
80 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
81 results = {} | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
82 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
83 # gather tests | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
84 tests = [ test for test in os.listdir(directory) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
85 if test.endswith('.txt') ] | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
86 output.write("Tests:\n%s\n" % '\n'.join(tests)) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
87 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
88 for test in tests: | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
89 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
90 # create an app | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
91 app = app_cls() | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
92 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
93 # doctest arguments | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
94 extraglobs = {'here': directory, 'app': app, 'urlescape': escape} | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
95 doctest_args = dict(extraglobs=extraglobs, raise_on_error=raise_on_error) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
96 if report_first: | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
97 doctest_args['optionflags'] = doctest.REPORT_ONLY_FIRST_FAILURE | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
98 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
99 # run the test | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
100 try: | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
101 results[test] = doctest.testfile(test, **doctest_args) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
102 except doctest.DocTestFailure, failure: | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
103 raise | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
104 except doctest.UnexpectedException, failure: | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
105 raise failure.exc_info[0], failure.exc_info[1], failure.exc_info[2] | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
106 finally: | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
107 if cleanup: | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
108 app.cleanup() | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
109 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
110 return results | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
111 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
112 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
113 def main(args=sys.argv[1:]): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
114 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
115 # parse command line args | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
116 parser = OptionParser() | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
117 parser.add_option('--no-cleanup', dest='cleanup', | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
118 default=True, action='store_false', | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
119 help="cleanup following the tests") | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
120 parser.add_option('--raise', dest='raise_on_error', | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
121 default=False, action='store_true', | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
122 help="raise on first error") | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
123 parser.add_option('--report-first', dest='report_first', | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
124 default=False, action='store_true', | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
125 help="report the first error only (all tests will still run)") | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
126 parser.add_option('--model', dest='model', default='file_cache', | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
127 help="model to use") | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
128 options, args = parser.parse_args(args) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
129 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
130 # get arguments to run_tests | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
131 kw = dict([(i, getattr(options, i)) for i in ('raise_on_error', 'cleanup', 'report_first')]) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
132 if options.model is not None: | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
133 try: | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
134 kw['app_cls'] = app_classes[options.model] | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
135 except KeyError: | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
136 parser.error("Model '%s' unknown (choose from: %s)" % (options.model, app_classes.keys())) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
137 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
138 # run the tests | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
139 results = run_tests(**kw) | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
140 if sum([i.failed for i in results.values()]): | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
141 sys.exit(1) # error | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
142 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
143 | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
144 if __name__ == '__main__': | 
| 
 
b0942f44413f
import from git://github.com/mozilla/toolbox.git
 
Jeff Hammel <k0scist@gmail.com> 
parents:  
diff
changeset
 | 
145 main() | 
