[Python-checkins] python/dist/src/Lib/test test_warnings.py,NONE,1.1

jhylton@users.sourceforge.net jhylton@users.sourceforge.net
2003年7月11日 08:38:01 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1:/tmp/cvs-serv2922/test
Added Files:
	test_warnings.py 
Log Message:
Change warnings to avoid importing re module during startup.
Add API function simplefilter() that does not create or install
regular expressions to match message or module. Extend the filters
data structure to store None as an alternative to re.compile("").
Move the _test() function to test_warnings and add some code to try
and avoid disturbing the global state of the warnings module.
--- NEW FILE: test_warnings.py ---
import warnings
# The warnings module isn't easily tested, because it relies on module
# globals to store configuration information. We need to extract the
# current settings to avoid bashing them while running tests.
_filters = []
_showwarning = None
def showwarning(message, category, filename, lineno, file=None):
 i = filename.find("Lib/")
 filename = filename[i:]
 print "%s:%s: %s: %s" % (filename, lineno, category.__name__, message)
def monkey():
 global _filters, _showwarning
 _filters = warnings.filters[:]
 _showwarning = warnings.showwarning
 warnings.showwarning = showwarning
def unmonkey():
 warnings.filters = _filters[:]
 warnings.showwarning = _showwarning
def test():
 for item in warnings.filters:
 print (item[0], item[1] is None, item[2].__name__, item[3] is None,
 item[4])
 hello = "hello world"
 for i in range(4):
 warnings.warn(hello)
 warnings.warn(hello, UserWarning)
 warnings.warn(hello, DeprecationWarning)
 for i in range(3):
 warnings.warn(hello)
 warnings.filterwarnings("error", "", Warning, "", 0)
 try:
 warnings.warn(hello)
 except Exception, msg:
 print "Caught", msg.__class__.__name__ + ":", msg
 else:
 print "No exception"
 warnings.resetwarnings()
 try:
 warnings.filterwarnings("booh", "", Warning, "", 0)
 except Exception, msg:
 print "Caught", msg.__class__.__name__ + ":", msg
 else:
 print "No exception"
monkey()
test()
unmonkey()

AltStyle によって変換されたページ (->オリジナル) /