Mercurial > scratch
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)