Update of /cvsroot/pywin32/pywin32/com/win32com/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8985
Modified Files:
errorSemantics.py
Log Message:
Test the new ability to send output to a logging module object.
Index: errorSemantics.py
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32com/test/errorSemantics.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** errorSemantics.py 10 Nov 2003 00:49:29 -0000 1.5
--- errorSemantics.py 7 Sep 2004 02:10:49 -0000 1.6
***************
*** 96,101 ****
--- 96,147 ----
raise error("Could not find a traceback in stderr: %r" % (cap.get_captured(),))
+ try:
+ import logging
+ except ImportError:
+ logging = None
+ if logging is not None:
+ import win32com
+ class TestLogHandler(logging.Handler):
+ def __init__(self):
+ self.num_emits = 0
+ logging.Handler.__init__(self)
+ def emit(self, record):
+ self.num_emits += 1
+ return
+ print "--- record start"
+ print self.format(record)
+ print "--- record end"
+
+ def testLogger():
+ assert not hasattr(win32com, "logger")
+ handler = TestLogHandler()
+ formatter = logging.Formatter('%(message)s')
+ handler.setFormatter(formatter)
+ log = logging.getLogger("win32com_test")
+ log.addHandler(handler)
+ win32com.logger = log
+ # Now throw some exceptions!
+ # Native interfaces
+ com_server = wrap(TestServer(), pythoncom.IID_IStream)
+ try:
+ com_server.Commit(0)
+ raise RuntimeError, "should have failed"
+ except pythoncom.error:
+ pass
+ assert handler.num_emits == 1, handler.num_emits
+ handler.num_emits = 0 # reset
+
+ com_server = Dispatch(wrap(TestServer()))
+ try:
+ com_server.Commit(0)
+ raise RuntimeError, "should have failed"
+ except pythoncom.error:
+ pass
+ assert handler.num_emits == 1, handler.num_emits
+
if __name__=='__main__':
test()
+ if logging is not None:
+ testLogger()
from util import CheckClean
CheckClean()
|