[Python-checkins] python/dist/src/Lib/test test_codeop.py,1.3,1.3.12.1
pedronis@users.sourceforge.net
pedronis@users.sourceforge.net
Fri, 16 May 2003 19:35:39 -0700
Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1:/tmp/cvs-serv2320
Modified Files:
Tag: release22-maint
test_codeop.py
Log Message:
beefed up version: jython support, covers now fixed differences between CPython/Jython.
Index: test_codeop.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_codeop.py,v
retrieving revision 1.3
retrieving revision 1.3.12.1
diff -C2 -d -r1.3 -r1.3.12.1
*** test_codeop.py 20 Sep 2001 21:33:42 -0000 1.3
--- test_codeop.py 17 May 2003 02:35:37 -0000 1.3.12.1
***************
*** 4,18 ****
"""
import unittest
! from test_support import run_unittest
from codeop import compile_command
class CodeopTests(unittest.TestCase):
def assertValid(self, str, symbol='single'):
'''succeed iff str is a valid piece of code'''
! expected = compile(str, "<input>", symbol)
! self.assertEquals( compile_command(str, "<input>", symbol), expected)
!
def assertIncomplete(self, str, symbol='single'):
--- 4,44 ----
"""
import unittest
! from test_support import run_unittest, is_jython
from codeop import compile_command
+ if is_jython:
+ import sys
+ import cStringIO
+
+ def unify_callables(d):
+ for n,v in d.items():
+ if callable(v):
+ d[n] = callable
+ return d
+
class CodeopTests(unittest.TestCase):
def assertValid(self, str, symbol='single'):
'''succeed iff str is a valid piece of code'''
! if is_jython:
! code = compile_command(str, "<input>", symbol)
! self.assert_(code)
! if symbol == "single":
! d,r = {},{}
! sys.stdout = cStringIO.StringIO()
! try:
! exec code in d
! exec compile(str,"<input>","single") in r
! finally:
! sys.stdout = sys.__stdout__
! elif symbol == 'eval':
! ctx = {'a': 2}
! d = { 'value': eval(code,ctx) }
! r = { 'value': eval(str,ctx) }
! self.assertEquals(unify_callables(r),unify_callables(d))
! else:
! expected = compile(str, "<input>", symbol)
! self.assertEquals( compile_command(str, "<input>", symbol), expected)
def assertIncomplete(self, str, symbol='single'):
***************
*** 32,64 ****
def test_valid(self):
av = self.assertValid
av("a = 1\n")
av("def x():\n pass\n")
av("pass\n")
av("3**3\n")
av("if 9==3:\n pass\nelse:\n pass\n")
av("#a\n#b\na = 3\n")
av("#a\n\n \na=3\n")
av("a=3\n\n")
!
! # special case
! self.assertEquals(compile_command(""),
! compile("pass", "<input>", 'single'))
av("3**3","eval")
av("(lambda z: \n z**3)","eval")
av("#a\n#b\na**3","eval")
def test_incomplete(self):
ai = self.assertIncomplete
ai("(a **")
- ai("def x():\n")
ai("(a,b,")
ai("(a,b,(")
ai("(a,b,(")
ai("if 9==3:\n pass\nelse:\n")
ai("if 9==3:\n pass\nelse:\n pass")
! ai("a = (")
ai("a = 9+ \\")
ai("(","eval")
ai("(\n\n\n","eval")
--- 58,144 ----
def test_valid(self):
av = self.assertValid
+
+ # special case
+ if not is_jython:
+ self.assertEquals(compile_command(""),
+ compile("pass", "<input>", 'single'))
+ self.assertEquals(compile_command("\n"),
+ compile("pass", "<input>", 'single'))
+ else:
+ av("")
+ av("\n")
+
+ av("a = 1")
+ av("\na = 1")
av("a = 1\n")
+ av("a = 1\n\n")
+ av("\n\na = 1\n\n")
+
av("def x():\n pass\n")
+ av("if 1:\n pass\n")
+
+ av("\n\nif 1: pass\n")
+ av("\n\nif 1: pass\n\n")
+
+ av("def x():\n\n pass\n")
+ av("def x():\n pass\n \n")
+ av("def x():\n pass\n \n")
+
av("pass\n")
av("3**3\n")
+
av("if 9==3:\n pass\nelse:\n pass\n")
+ av("if 1:\n pass\n if 1:\n pass\n else:\n pass\n")
+
av("#a\n#b\na = 3\n")
av("#a\n\n \na=3\n")
av("a=3\n\n")
! av("a = 9+ \\\n3")
av("3**3","eval")
av("(lambda z: \n z**3)","eval")
+
+ av("9+ \\\n3","eval")
+ av("9+ \\\n3\n","eval")
+
+ av("\n\na**3","eval")
+ av("\n \na**3","eval")
av("#a\n#b\na**3","eval")
def test_incomplete(self):
ai = self.assertIncomplete
+
ai("(a **")
ai("(a,b,")
ai("(a,b,(")
ai("(a,b,(")
+ ai("a = (")
+ ai("a = {")
+ ai("b + {")
+
+ ai("if 9==3:\n pass\nelse:")
ai("if 9==3:\n pass\nelse:\n")
ai("if 9==3:\n pass\nelse:\n pass")
! ai("if 1:")
! ai("if 1:\n")
! ai("if 1:\n pass\n if 1:\n pass\n else:")
! ai("if 1:\n pass\n if 1:\n pass\n else:\n")
! ai("if 1:\n pass\n if 1:\n pass\n else:\n pass")
!
! ai("def x():")
! ai("def x():\n")
! ai("def x():\n\n")
!
! ai("def x():\n pass")
! ai("def x():\n pass\n ")
! ai("def x():\n pass\n ")
! ai("\n\ndef x():\n pass")
!
ai("a = 9+ \\")
+ ai("a = 'a\\")
+ ai("a = '''xy")
+ ai("","eval")
+ ai("\n","eval")
ai("(","eval")
ai("(\n\n\n","eval")
***************
*** 70,75 ****
--- 150,168 ----
ai = self.assertInvalid
ai("a b")
+
+ ai("a @")
+ ai("a b @")
+ ai("a ** @")
+
ai("a = ")
ai("a = 9 +")
+
+ ai("def x():\n\npass\n")
+
+ ai("\n\n if 1: pass\n\npass")
+
+ ai("a = 9+ \\\n")
+ ai("a = 'a\\ ")
+ ai("a = 'a\\\n")
ai("a = 1","eval")