[Python-checkins] r52496 - in python/trunk/Lib/test: output/test_opcodes test_opcodes.py

georg.brandl python-checkins at python.org
Sat Oct 28 15:56:58 CEST 2006


Author: georg.brandl
Date: Sat Oct 28 15:56:58 2006
New Revision: 52496

Removed:
   python/trunk/Lib/test/output/test_opcodes
Modified:
   python/trunk/Lib/test/test_opcodes.py
Log:
Convert test_opcodes to unittest.



Deleted: /python/trunk/Lib/test/output/test_opcodes
==============================================================================
--- /python/trunk/Lib/test/output/test_opcodes	Sat Oct 28 15:56:58 2006
+++ (empty file)
@@ -1,6 +0,0 @@
-test_opcodes
-2. Opcodes
-XXX Not yet fully implemented
-2.1 try inside for loop
-2.2 raise class exceptions
-2.3 comparing function objects

Modified: python/trunk/Lib/test/test_opcodes.py
==============================================================================
--- python/trunk/Lib/test/test_opcodes.py	(original)
+++ python/trunk/Lib/test/test_opcodes.py	Sat Oct 28 15:56:58 2006
@@ -1,101 +1,110 @@
 # Python test set -- part 2, opcodes
 
-from test.test_support import TestFailed
+from test.test_support import run_unittest
+import unittest
 
+class OpcodeTest(unittest.TestCase):
 
-print '2. Opcodes'
-print 'XXX Not yet fully implemented'
+    def test_try_inside_for_loop(self):
+        n = 0
+        for i in range(10):
+            n = n+i
+            try: 1/0
+            except NameError: pass
+            except ZeroDivisionError: pass
+            except TypeError: pass
+            try: pass
+            except: pass
+            try: pass
+            finally: pass
+            n = n+i
+        if n != 90:
+            self.fail('try inside for')
+
+    def test_raise_class_exceptions(self):
+
+        class AClass: pass
+        class BClass(AClass): pass
+        class CClass: pass
+        class DClass(AClass):
+            def __init__(self, ignore):
+                pass
+
+        try: raise AClass()
+        except: pass
+
+        try: raise AClass()
+        except AClass: pass
+
+        try: raise BClass()
+        except AClass: pass
+
+        try: raise BClass()
+        except CClass: self.fail()
+        except: pass
+
+        a = AClass()
+        b = BClass()
+
+        try: raise AClass, b
+        except BClass, v:
+            if v != b: self.fail("v!=b")
+        else: self.fail("no exception")
+
+        try: raise b
+        except AClass, v:
+            if v != b: self.fail("v!=b AClass")
+        else:
+            self.fail("no exception")
+
+        # not enough arguments
+        try:  raise BClass, a
+        except TypeError: pass
+        else: self.fail("no exception")
+
+        try:  raise DClass, a
+        except DClass, v:
+            self.assert_(isinstance(v, DClass))
+        else:
+            self.fail("no exception")
+
+    def test_compare_function_objects(self):
+
+        f = eval('lambda: None')
+        g = eval('lambda: None')
+        self.failIf(f == g)
+
+        f = eval('lambda a: a')
+        g = eval('lambda a: a')
+        self.failIf(f == g)
+
+        f = eval('lambda a=1: a')
+        g = eval('lambda a=1: a')
+        self.failIf(f == g)
+
+        f = eval('lambda: 0')
+        g = eval('lambda: 1')
+        self.failIf(f == g)
+
+        f = eval('lambda: None')
+        g = eval('lambda a: None')
+        self.failIf(f == g)
+
+        f = eval('lambda a: None')
+        g = eval('lambda b: None')
+        self.failIf(f == g)
+
+        f = eval('lambda a: None')
+        g = eval('lambda a=None: None')
+        self.failIf(f == g)
+
+        f = eval('lambda a=0: None')
+        g = eval('lambda a=1: None')
+        self.failIf(f == g)
 
-print '2.1 try inside for loop'
-n = 0
-for i in range(10):
-    n = n+i
-    try: 1/0
-    except NameError: pass
-    except ZeroDivisionError: pass
-    except TypeError: pass
-    try: pass
-    except: pass
-    try: pass
-    finally: pass
-    n = n+i
-if n != 90:
-    raise TestFailed, 'try inside for'
-
-
-print '2.2 raise class exceptions'
-
-class AClass: pass
-class BClass(AClass): pass
-class CClass: pass
-class DClass(AClass):
-    def __init__(self, ignore):
-        pass
-
-try: raise AClass()
-except: pass
-
-try: raise AClass()
-except AClass: pass
-
-try: raise BClass()
-except AClass: pass
-
-try: raise BClass()
-except CClass: raise TestFailed
-except: pass
-
-a = AClass()
-b = BClass()
-
-try: raise AClass, b
-except BClass, v:
-    if v != b: raise TestFailed, "v!=b"
-else: raise TestFailed, "no exception"
-
-try: raise b
-except AClass, v:
-    if v != b: raise TestFailed, "v!=b AClass"
-
-# not enough arguments
-try:  raise BClass, a
-except TypeError: pass
-
-try:  raise DClass, a
-except DClass, v:
-    if not isinstance(v, DClass):
-        raise TestFailed, "v not DClass"
-
-print '2.3 comparing function objects'
-
-f = eval('lambda: None')
-g = eval('lambda: None')
-if f == g: raise TestFailed, "functions should not be same"
-
-f = eval('lambda a: a')
-g = eval('lambda a: a')
-if f == g: raise TestFailed, "functions should not be same"
-
-f = eval('lambda a=1: a')
-g = eval('lambda a=1: a')
-if f == g: raise TestFailed, "functions should not be same"
-
-f = eval('lambda: 0')
-g = eval('lambda: 1')
-if f == g: raise TestFailed
-
-f = eval('lambda: None')
-g = eval('lambda a: None')
-if f == g: raise TestFailed
-
-f = eval('lambda a: None')
-g = eval('lambda b: None')
-if f == g: raise TestFailed
-
-f = eval('lambda a: None')
-g = eval('lambda a=None: None')
-if f == g: raise TestFailed
-
-f = eval('lambda a=0: None')
-g = eval('lambda a=1: None')
-if f == g: raise TestFailed
+
+def test_main():
+    run_unittest(OpcodeTest)
+
+if __name__ == '__main__':
+    test_main()


More information about the Python-checkins mailing list