[pywin32-checkins] pywin32/win32/test test_exceptions.py,1.4,1.5
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: Mark H. <mha...@us...> - 2008-10-07 11:32:33
|
Update of /cvsroot/pywin32/pywin32/win32/test In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv22355/win32/test Modified Files: test_exceptions.py Log Message: More robust handling and tests for 'insane' exception args. Index: test_exceptions.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/test/test_exceptions.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** test_exceptions.py 2 Oct 2008 12:09:53 -0000 1.4 --- test_exceptions.py 7 Oct 2008 11:28:10 -0000 1.5 *************** *** 1,3 **** --- 1,4 ---- """Test pywin32's error semantics""" + import sys import unittest import win32api, win32file, pywintypes *************** *** 83,86 **** --- 84,120 ---- self.failUnlessEqual(exc.funcname, 'CloseHandle') + # some tests for 'insane' args. + def testStrangeArgsNone(self): + try: + raise pywintypes.error() + self.fail("Expected exception") + except pywintypes.error, exc: + self.failUnlessEqual(exc.args, ()) + self.failUnlessEqual(exc.winerror, None) + self.failUnlessEqual(exc.funcname, None) + self.failUnlessEqual(exc.strerror, None) + + def testStrangeArgsNotEnough(self): + try: + raise pywintypes.error("foo") + self.fail("Expected exception") + except pywintypes.error, exc: + assert exc.args[0] == "foo" + # 'winerror' always args[0] + self.failUnlessEqual(exc.winerror, "foo") + self.failUnlessEqual(exc.funcname, None) + self.failUnlessEqual(exc.strerror, None) + + def testStrangeArgsTooMany(self): + try: + raise pywintypes.error("foo", "bar", "you", "never", "kn", 0) + self.fail("Expected exception") + except pywintypes.error, exc: + self.failUnlessEqual(exc.args[0], "foo") + self.failUnlessEqual(exc.args[-1], 0) + self.failUnlessEqual(exc.winerror, "foo") + self.failUnlessEqual(exc.funcname, "bar") + self.failUnlessEqual(exc.strerror, "you") + class TestCOMSimple(TestBase): def _getException(self): *************** *** 142,146 **** self.failUnlessEqual(exc.argerror, None) self.failUnlessEqual(exc.excepinfo, None) ! if __name__ == '__main__': unittest.main() --- 176,214 ---- self.failUnlessEqual(exc.argerror, None) self.failUnlessEqual(exc.excepinfo, None) ! ! def testStrangeArgsNone(self): ! try: ! raise pywintypes.com_error() ! self.fail("Expected exception") ! except pywintypes.com_error, exc: ! self.failUnlessEqual(exc.args, ()) ! self.failUnlessEqual(exc.hresult, None) ! self.failUnlessEqual(exc.strerror, None) ! self.failUnlessEqual(exc.argerror, None) ! self.failUnlessEqual(exc.excepinfo, None) ! ! def testStrangeArgsNotEnough(self): ! try: ! raise pywintypes.com_error("foo") ! self.fail("Expected exception") ! except pywintypes.com_error, exc: ! self.failUnlessEqual(exc.args[0], "foo") ! self.failUnlessEqual(exc.hresult, "foo") ! self.failUnlessEqual(exc.strerror, None) ! self.failUnlessEqual(exc.excepinfo, None) ! self.failUnlessEqual(exc.argerror, None) ! ! def testStrangeArgsTooMany(self): ! try: ! raise pywintypes.com_error("foo", "bar", "you", "never", "kn", 0) ! self.fail("Expected exception") ! except pywintypes.com_error, exc: ! self.failUnlessEqual(exc.args[0], "foo") ! self.failUnlessEqual(exc.args[-1], 0) ! self.failUnlessEqual(exc.hresult, "foo") ! self.failUnlessEqual(exc.strerror, "bar") ! self.failUnlessEqual(exc.excepinfo, "you") ! self.failUnlessEqual(exc.argerror, "never") ! if __name__ == '__main__': unittest.main() |