annotate pydershell/test.py @ 22:9413bebf2ee6

Separated the test functionality out into a separate file.
author Atul Varma <varmaa@toolness.com>
date Mon, 07 Sep 2009 16:18:34 -0700
parents
children dace90a7f5e3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1 #! /usr/bin/env python
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3 # Trivial embedding of pydershell.
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
5 import sys
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
6
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
7 import pydermonkey
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
8 from pydershell import JsSandbox, JsExposedObject
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
9
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
10 if __name__ == '__main__':
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
11 sandbox = JsSandbox()
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
12
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
13 class Baz(JsExposedObject):
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
14 def woozle(self, blap):
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
15 return blap + 5
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
16 woozle.__jsexposed__ = True
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
17
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
18 def baz():
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
19 return Baz()
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
20 sandbox.root.baz = baz
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
21
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
22 def bar(obj):
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
23 print obj.bar()
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
24 sandbox.root.bar = bar
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
25
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
26 def foo(callback):
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
27 return callback()
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
28 sandbox.root.foo = foo
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
29
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
30 def ensureBaz(baz):
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
31 if not isinstance(baz, Baz):
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
32 print "Uhoh"
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
33 else:
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
34 print "ok"
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
35 sandbox.root.ensureBaz = ensureBaz
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
36
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
37 def jsprint(string):
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
38 print string
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
39 sandbox.root['print'] = jsprint
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
40
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
41 retval = sandbox.run_script('test.js')
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
42
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
43 sandbox.finish()
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
44 del sandbox
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
45
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
46 import gc
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
47 gc.collect()
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
48 if pydermonkey.get_debug_info()['runtime_count']:
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
49 print "WARNING: JS runtime was not destroyed."
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
50
9413bebf2ee6 Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
51 sys.exit(retval)