Mercurial > scratch
annotate pydershell/test.py @ 25:64fb84017d87
Added .hgignore.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Mon, 07 Sep 2009 17:20:24 -0700 |
parents | dace90a7f5e3 |
children | b7037cd0f375 |
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 |
24
dace90a7f5e3
Added a 'jsexposed' decorator and, for security purposes, required that __jsexposed__ be True on all callables passed into JS-land as well.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
8 from pydershell import JsSandbox, JsExposedObject, jsexposed |
22
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): |
24
dace90a7f5e3
Added a 'jsexposed' decorator and, for security purposes, required that __jsexposed__ be True on all callables passed into JS-land as well.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
14 @jsexposed |
22
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
15 def woozle(self, blap): |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
16 return blap + 5 |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
17 |
24
dace90a7f5e3
Added a 'jsexposed' decorator and, for security purposes, required that __jsexposed__ be True on all callables passed into JS-land as well.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
18 @jsexposed(on=sandbox.root) |
22
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
19 def baz(): |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
20 return Baz() |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
21 |
24
dace90a7f5e3
Added a 'jsexposed' decorator and, for security purposes, required that __jsexposed__ be True on all callables passed into JS-land as well.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
22 @jsexposed(on=sandbox.root) |
22
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
23 def bar(obj): |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
24 print obj.bar() |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
25 |
24
dace90a7f5e3
Added a 'jsexposed' decorator and, for security purposes, required that __jsexposed__ be True on all callables passed into JS-land as well.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
26 @jsexposed(on=sandbox.root) |
22
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
27 def foo(callback): |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
28 return callback() |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
29 |
24
dace90a7f5e3
Added a 'jsexposed' decorator and, for security purposes, required that __jsexposed__ be True on all callables passed into JS-land as well.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
30 @jsexposed(on=sandbox.root) |
22
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
31 def ensureBaz(baz): |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
32 if not isinstance(baz, Baz): |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
33 print "Uhoh" |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
34 else: |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
35 print "ok" |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
36 |
24
dace90a7f5e3
Added a 'jsexposed' decorator and, for security purposes, required that __jsexposed__ be True on all callables passed into JS-land as well.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
37 @jsexposed(name="print", on=sandbox.root) |
22
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
38 def jsprint(string): |
9413bebf2ee6
Separated the test functionality out into a separate file.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
39 print string |
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) |