# HG changeset patch # User Atul Varma # Date 1251089979 25200 # Node ID f83a1603c417101a0a69c207f9de703faac4568c # Parent b4e216d06e8374f360db0d81a6c1ac1c7d29811a Added a syntax error test. diff -r b4e216d06e83 -r f83a1603c417 tests/test_pymonkey.py --- a/tests/test_pymonkey.py Sun Aug 23 21:49:44 2009 -0700 +++ b/tests/test_pymonkey.py Sun Aug 23 21:59:39 2009 -0700 @@ -15,6 +15,14 @@ cx.init_standard_classes(obj) return cx.evaluate_script(obj, code, '', 1) + def _execjs(self, code): + rt = pymonkey.Runtime() + cx = rt.new_context() + obj = cx.new_object() + cx.init_standard_classes(obj) + script = cx.compile_script(obj, code, '', 1) + return cx.execute_script(obj, script) + def _evalJsWrappedPyFunc(self, func, code): cx = pymonkey.Runtime().new_context() obj = cx.new_object() @@ -32,14 +40,16 @@ was_raised = True self.assertTrue(was_raised) + def testSyntaxErrorsAreRaised(self): + for run in [self._evaljs, self._execjs]: + self.assertRaises(pymonkey.error, run, '5f') + self.assertEqual( + self.last_exception.args[1], + u'SyntaxError: missing ; before statement' + ) + def testCompileScriptWorks(self): - rt = pymonkey.Runtime() - cx = rt.new_context() - obj = cx.new_object() - cx.init_standard_classes(obj) - code = '5 + 1' - script = cx.compile_script(obj, code, '', 1) - self.assertEqual(cx.execute_script(obj, script), 6) + self.assertEqual(self._execjs('5 + 1'), 6) def testErrorsRaisedIncludeStrings(self): self.assertRaises(pymonkey.error, self._evaljs, 'boop()')