Mercurial > pymonkey
annotate test_pymonkey.py @ 32:abf14cba9ef5
JS wrapped Python functions can now return floats.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Tue, 30 Jun 2009 22:37:00 -0700 |
parents | d0a3f358072a |
children | 5d3d3b25f23f |
rev | line source |
---|---|
0 | 1 import unittest |
2 import pymonkey | |
3 | |
4 class PymonkeyTests(unittest.TestCase): | |
16
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
5 def _evaljs(self, code): |
9
032cfc448079
Added pymonkey.Runtime and pymonkey.Context as new types.
Atul Varma <varmaa@toolness.com>
parents:
8
diff
changeset
|
6 rt = pymonkey.Runtime() |
032cfc448079
Added pymonkey.Runtime and pymonkey.Context as new types.
Atul Varma <varmaa@toolness.com>
parents:
8
diff
changeset
|
7 cx = rt.new_context() |
16
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
8 obj = cx.new_object() |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
9 cx.init_standard_classes(obj) |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
10 return cx.evaluate_script(obj, code, '<string>', 1) |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
11 |
31
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
12 def _evalJsWrappedPyFunc(self, func, code): |
24
74b7ad049542
Added very primitive support for calling python functions from JS.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
13 cx = pymonkey.Runtime().new_context() |
74b7ad049542
Added very primitive support for calling python functions from JS.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
14 obj = cx.new_object() |
74b7ad049542
Added very primitive support for calling python functions from JS.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
15 cx.init_standard_classes(obj) |
31
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
16 cx.define_function(obj, func, func.__name__) |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
17 return cx.evaluate_script(obj, code, '<string>', 1) |
24
74b7ad049542
Added very primitive support for calling python functions from JS.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
18 |
31
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
19 def testJsWrappedPythonFunctionReturnsUnicode(self): |
24
74b7ad049542
Added very primitive support for calling python functions from JS.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
20 def hai2u(): |
29
608d086d12e3
Added a new PYM_pyObjectToJsval() function that only supports unicode for the moment. Also, whereever we're assuming that Py_UNICODE is UCS-2, we're surrounding such code with #ifndef Py_UNICODE_WIDE.
Atul Varma <varmaa@toolness.com>
parents:
28
diff
changeset
|
21 return u"o hai" |
31
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
22 self.assertEqual(self._evalJsWrappedPyFunc(hai2u, 'hai2u()'), |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
23 u"o hai") |
24
74b7ad049542
Added very primitive support for calling python functions from JS.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
24 |
31
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
25 def testJsWrappedPythonFunctionReturnsSmallInt(self): |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
26 def hai2u(): |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
27 return 5 |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
28 self.assertEqual(self._evalJsWrappedPyFunc(hai2u, 'hai2u()'), |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
29 5) |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
30 |
32
abf14cba9ef5
JS wrapped Python functions can now return floats.
Atul Varma <varmaa@toolness.com>
parents:
31
diff
changeset
|
31 def testJsWrappedPythonFunctionReturnsFloat(self): |
abf14cba9ef5
JS wrapped Python functions can now return floats.
Atul Varma <varmaa@toolness.com>
parents:
31
diff
changeset
|
32 def hai2u(): |
abf14cba9ef5
JS wrapped Python functions can now return floats.
Atul Varma <varmaa@toolness.com>
parents:
31
diff
changeset
|
33 return 5.1 |
abf14cba9ef5
JS wrapped Python functions can now return floats.
Atul Varma <varmaa@toolness.com>
parents:
31
diff
changeset
|
34 self.assertEqual(self._evalJsWrappedPyFunc(hai2u, 'hai2u()'), |
abf14cba9ef5
JS wrapped Python functions can now return floats.
Atul Varma <varmaa@toolness.com>
parents:
31
diff
changeset
|
35 5.1) |
abf14cba9ef5
JS wrapped Python functions can now return floats.
Atul Varma <varmaa@toolness.com>
parents:
31
diff
changeset
|
36 |
31
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
37 def testJsWrappedPythonFunctionReturnsNegativeInt(self): |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
38 def hai2u(): |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
39 return -5 |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
40 self.assertEqual(self._evalJsWrappedPyFunc(hai2u, 'hai2u()'), |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
41 -5) |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
42 |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
43 def testJsWrappedPythonFunctionReturnsBigInt(self): |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
44 def hai2u(): |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
45 return 2147483647 |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
46 self.assertEqual(self._evalJsWrappedPyFunc(hai2u, 'hai2u()'), |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
47 2147483647) |
24
74b7ad049542
Added very primitive support for calling python functions from JS.
Atul Varma <varmaa@toolness.com>
parents:
22
diff
changeset
|
48 |
22
988a8998c75f
JS objects reflected into Python are now identity-preserving, though the implementation for this is pretty bad right now.
Atul Varma <varmaa@toolness.com>
parents:
20
diff
changeset
|
49 def testObjectIsIdentityPreserving(self): |
988a8998c75f
JS objects reflected into Python are now identity-preserving, though the implementation for this is pretty bad right now.
Atul Varma <varmaa@toolness.com>
parents:
20
diff
changeset
|
50 cx = pymonkey.Runtime().new_context() |
988a8998c75f
JS objects reflected into Python are now identity-preserving, though the implementation for this is pretty bad right now.
Atul Varma <varmaa@toolness.com>
parents:
20
diff
changeset
|
51 obj = cx.new_object() |
988a8998c75f
JS objects reflected into Python are now identity-preserving, though the implementation for this is pretty bad right now.
Atul Varma <varmaa@toolness.com>
parents:
20
diff
changeset
|
52 cx.init_standard_classes(obj) |
988a8998c75f
JS objects reflected into Python are now identity-preserving, though the implementation for this is pretty bad right now.
Atul Varma <varmaa@toolness.com>
parents:
20
diff
changeset
|
53 cx.evaluate_script(obj, 'foo = {bar: 1}', '<string>', 1) |
27
21045074139f
Based on my new understanding of JSString */jschar * thanks to folks on #jsapi, I've removed the requirement that SpiderMonkey be in UTF-8 mode to translate strings between Python and SpiderMonkey.
Atul Varma <varmaa@toolness.com>
parents:
24
diff
changeset
|
54 self.assertTrue(isinstance(cx.get_property(obj, u"foo"), |
22
988a8998c75f
JS objects reflected into Python are now identity-preserving, though the implementation for this is pretty bad right now.
Atul Varma <varmaa@toolness.com>
parents:
20
diff
changeset
|
55 pymonkey.Object)) |
27
21045074139f
Based on my new understanding of JSString */jschar * thanks to folks on #jsapi, I've removed the requirement that SpiderMonkey be in UTF-8 mode to translate strings between Python and SpiderMonkey.
Atul Varma <varmaa@toolness.com>
parents:
24
diff
changeset
|
56 self.assertTrue(cx.get_property(obj, u"foo") is |
21045074139f
Based on my new understanding of JSString */jschar * thanks to folks on #jsapi, I've removed the requirement that SpiderMonkey be in UTF-8 mode to translate strings between Python and SpiderMonkey.
Atul Varma <varmaa@toolness.com>
parents:
24
diff
changeset
|
57 cx.get_property(obj, u"foo")) |
22
988a8998c75f
JS objects reflected into Python are now identity-preserving, though the implementation for this is pretty bad right now.
Atul Varma <varmaa@toolness.com>
parents:
20
diff
changeset
|
58 |
17
0812422ec99e
Added a context.get_property() method.
Atul Varma <varmaa@toolness.com>
parents:
16
diff
changeset
|
59 def testObjectGetattrWorks(self): |
0812422ec99e
Added a context.get_property() method.
Atul Varma <varmaa@toolness.com>
parents:
16
diff
changeset
|
60 cx = pymonkey.Runtime().new_context() |
0812422ec99e
Added a context.get_property() method.
Atul Varma <varmaa@toolness.com>
parents:
16
diff
changeset
|
61 obj = cx.new_object() |
0812422ec99e
Added a context.get_property() method.
Atul Varma <varmaa@toolness.com>
parents:
16
diff
changeset
|
62 cx.init_standard_classes(obj) |
0812422ec99e
Added a context.get_property() method.
Atul Varma <varmaa@toolness.com>
parents:
16
diff
changeset
|
63 cx.evaluate_script(obj, 'boop = 5', '<string>', 1) |
0812422ec99e
Added a context.get_property() method.
Atul Varma <varmaa@toolness.com>
parents:
16
diff
changeset
|
64 cx.evaluate_script(obj, 'this["blarg\u2026"] = 5', '<string>', 1) |
27
21045074139f
Based on my new understanding of JSString */jschar * thanks to folks on #jsapi, I've removed the requirement that SpiderMonkey be in UTF-8 mode to translate strings between Python and SpiderMonkey.
Atul Varma <varmaa@toolness.com>
parents:
24
diff
changeset
|
65 self.assertEqual(cx.get_property(obj, u"beans"), |
17
0812422ec99e
Added a context.get_property() method.
Atul Varma <varmaa@toolness.com>
parents:
16
diff
changeset
|
66 pymonkey.undefined) |
0812422ec99e
Added a context.get_property() method.
Atul Varma <varmaa@toolness.com>
parents:
16
diff
changeset
|
67 self.assertEqual(cx.get_property(obj, u"blarg\u2026"), 5) |
27
21045074139f
Based on my new understanding of JSString */jschar * thanks to folks on #jsapi, I've removed the requirement that SpiderMonkey be in UTF-8 mode to translate strings between Python and SpiderMonkey.
Atul Varma <varmaa@toolness.com>
parents:
24
diff
changeset
|
68 self.assertEqual(cx.get_property(obj, u"boop"), 5) |
17
0812422ec99e
Added a context.get_property() method.
Atul Varma <varmaa@toolness.com>
parents:
16
diff
changeset
|
69 |
16
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
70 def testContextIsInstance(self): |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
71 cx = pymonkey.Runtime().new_context() |
9
032cfc448079
Added pymonkey.Runtime and pymonkey.Context as new types.
Atul Varma <varmaa@toolness.com>
parents:
8
diff
changeset
|
72 self.assertTrue(isinstance(cx, pymonkey.Context)) |
032cfc448079
Added pymonkey.Runtime and pymonkey.Context as new types.
Atul Varma <varmaa@toolness.com>
parents:
8
diff
changeset
|
73 |
16
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
74 def testContextTypeCannotBeInstantiated(self): |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
75 self.assertRaises(TypeError, pymonkey.Context) |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
76 |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
77 def testObjectIsInstance(self): |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
78 obj = pymonkey.Runtime().new_context().new_object() |
13 | 79 self.assertTrue(isinstance(obj, pymonkey.Object)) |
80 | |
16
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
81 def testObjectTypeCannotBeInstantiated(self): |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
82 self.assertRaises(TypeError, pymonkey.Object) |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
83 |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
84 def testGetRuntimeWorks(self): |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
85 rt = pymonkey.Runtime() |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
86 cx = rt.new_context() |
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
87 self.assertEqual(cx.get_runtime(), rt) |
14
9edcdb4ab12d
added an init_standard_classes() method to context objects.
Atul Varma <varmaa@toolness.com>
parents:
13
diff
changeset
|
88 |
8
6647870380cc
Added support for undefined.
Atul Varma <varmaa@toolness.com>
parents:
7
diff
changeset
|
89 def testUndefinedCannotBeInstantiated(self): |
6647870380cc
Added support for undefined.
Atul Varma <varmaa@toolness.com>
parents:
7
diff
changeset
|
90 self.assertRaises(TypeError, pymonkey.undefined) |
6647870380cc
Added support for undefined.
Atul Varma <varmaa@toolness.com>
parents:
7
diff
changeset
|
91 |
6647870380cc
Added support for undefined.
Atul Varma <varmaa@toolness.com>
parents:
7
diff
changeset
|
92 def testEvaluateReturnsUndefined(self): |
16
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
93 retval = self._evaljs("") |
8
6647870380cc
Added support for undefined.
Atul Varma <varmaa@toolness.com>
parents:
7
diff
changeset
|
94 self.assertTrue(retval is pymonkey.undefined) |
6647870380cc
Added support for undefined.
Atul Varma <varmaa@toolness.com>
parents:
7
diff
changeset
|
95 |
28
bd30f5c02fc3
Added a new test for supplementary multilingual plane unicode.
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
96 def testEvaluateReturnsSMPUnicode(self): |
bd30f5c02fc3
Added a new test for supplementary multilingual plane unicode.
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
97 # This is 'LINEAR B SYLLABLE B008 A', in the supplementary |
bd30f5c02fc3
Added a new test for supplementary multilingual plane unicode.
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
98 # multilingual plane (SMP). |
bd30f5c02fc3
Added a new test for supplementary multilingual plane unicode.
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
99 retval = self._evaljs("'\uD800\uDC00'") |
bd30f5c02fc3
Added a new test for supplementary multilingual plane unicode.
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
100 self.assertEqual(retval, u'\U00010000') |
bd30f5c02fc3
Added a new test for supplementary multilingual plane unicode.
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
101 self.assertEqual(retval.encode('utf-16'), |
bd30f5c02fc3
Added a new test for supplementary multilingual plane unicode.
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
102 '\xff\xfe\x00\xd8\x00\xdc') |
bd30f5c02fc3
Added a new test for supplementary multilingual plane unicode.
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
103 |
bd30f5c02fc3
Added a new test for supplementary multilingual plane unicode.
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
104 def testEvaluateReturnsBMPUnicode(self): |
16
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
105 retval = self._evaljs("'o hai\u2026'") |
7
0d0ce6415b66
Added support for unicode strings.
Atul Varma <varmaa@toolness.com>
parents:
5
diff
changeset
|
106 self.assertTrue(type(retval) == unicode) |
0d0ce6415b66
Added support for unicode strings.
Atul Varma <varmaa@toolness.com>
parents:
5
diff
changeset
|
107 self.assertEqual(retval, u'o hai\u2026') |
0d0ce6415b66
Added support for unicode strings.
Atul Varma <varmaa@toolness.com>
parents:
5
diff
changeset
|
108 |
20
abede8af8cf5
PYM_jsvalToPyObject() can now deal with JSObjects.
Atul Varma <varmaa@toolness.com>
parents:
17
diff
changeset
|
109 def testEvaluateReturnsObject(self): |
abede8af8cf5
PYM_jsvalToPyObject() can now deal with JSObjects.
Atul Varma <varmaa@toolness.com>
parents:
17
diff
changeset
|
110 rt = pymonkey.Runtime() |
abede8af8cf5
PYM_jsvalToPyObject() can now deal with JSObjects.
Atul Varma <varmaa@toolness.com>
parents:
17
diff
changeset
|
111 cx = rt.new_context() |
abede8af8cf5
PYM_jsvalToPyObject() can now deal with JSObjects.
Atul Varma <varmaa@toolness.com>
parents:
17
diff
changeset
|
112 obj = cx.new_object() |
abede8af8cf5
PYM_jsvalToPyObject() can now deal with JSObjects.
Atul Varma <varmaa@toolness.com>
parents:
17
diff
changeset
|
113 cx.init_standard_classes(obj) |
abede8af8cf5
PYM_jsvalToPyObject() can now deal with JSObjects.
Atul Varma <varmaa@toolness.com>
parents:
17
diff
changeset
|
114 obj = cx.evaluate_script(obj, '({boop: 1})', '<string>', 1) |
abede8af8cf5
PYM_jsvalToPyObject() can now deal with JSObjects.
Atul Varma <varmaa@toolness.com>
parents:
17
diff
changeset
|
115 self.assertTrue(isinstance(obj, pymonkey.Object)) |
27
21045074139f
Based on my new understanding of JSString */jschar * thanks to folks on #jsapi, I've removed the requirement that SpiderMonkey be in UTF-8 mode to translate strings between Python and SpiderMonkey.
Atul Varma <varmaa@toolness.com>
parents:
24
diff
changeset
|
116 self.assertEqual(cx.get_property(obj, u"boop"), 1) |
20
abede8af8cf5
PYM_jsvalToPyObject() can now deal with JSObjects.
Atul Varma <varmaa@toolness.com>
parents:
17
diff
changeset
|
117 |
5 | 118 def testEvaluateReturnsTrue(self): |
16
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
119 self.assertTrue(self._evaljs('true') is True) |
5 | 120 |
121 def testEvaluateReturnsFalse(self): | |
16
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
122 self.assertTrue(self._evaljs('false') is False) |
5 | 123 |
4
2711b636f8e6
Added support for NULL return values.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
124 def testEvaluateReturnsNone(self): |
16
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
125 self.assertTrue(self._evaljs('null') is None) |
4
2711b636f8e6
Added support for NULL return values.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
126 |
3
d6a0819ca6ca
Added return value support for doubles.
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
127 def testEvaluateReturnsIntegers(self): |
16
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
128 self.assertEqual(self._evaljs('1+3'), 4) |
0 | 129 |
31
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
130 def testEvaluateReturnsNegativeIntegers(self): |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
131 self.assertEqual(self._evaljs('-5'), -5) |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
132 |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
133 def testEvaluateReturnsBigIntegers(self): |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
134 self.assertEqual(self._evaljs('2147483647*2'), |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
135 2147483647*2) |
d0a3f358072a
gcc now shows all warnings (-Wall).
Atul Varma <varmaa@toolness.com>
parents:
29
diff
changeset
|
136 |
3
d6a0819ca6ca
Added return value support for doubles.
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
137 def testEvaluateReturnsFloats(self): |
16
532b7ddca616
Created a new context.evaluate_script() function, replacing pymonkey.evaluate(). Separated out one of the big unit tests into several.
Atul Varma <varmaa@toolness.com>
parents:
14
diff
changeset
|
138 self.assertEqual(self._evaljs('1.1+3'), 4.1) |
3
d6a0819ca6ca
Added return value support for doubles.
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
139 |
0 | 140 if __name__ == '__main__': |
141 unittest.main() |