diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pydershell/test.py	Mon Sep 07 16:18:34 2009 -0700
@@ -0,0 +1,51 @@
+#! /usr/bin/env python
+
+# Trivial embedding of pydershell.
+
+import sys
+
+import pydermonkey
+from pydershell import JsSandbox, JsExposedObject
+
+if __name__ == '__main__':
+    sandbox = JsSandbox()
+
+    class Baz(JsExposedObject):
+        def woozle(self, blap):
+            return blap + 5
+        woozle.__jsexposed__ = True
+
+    def baz():
+        return Baz()
+    sandbox.root.baz = baz
+
+    def bar(obj):
+        print obj.bar()
+    sandbox.root.bar = bar
+
+    def foo(callback):
+        return callback()
+    sandbox.root.foo = foo
+
+    def ensureBaz(baz):
+        if not isinstance(baz, Baz):
+            print "Uhoh"
+        else:
+            print "ok"
+    sandbox.root.ensureBaz = ensureBaz
+
+    def jsprint(string):
+        print string
+    sandbox.root['print'] = jsprint
+
+    retval = sandbox.run_script('test.js')
+
+    sandbox.finish()
+    del sandbox
+
+    import gc
+    gc.collect()
+    if pydermonkey.get_debug_info()['runtime_count']:
+        print "WARNING: JS runtime was not destroyed."
+
+    sys.exit(retval)