test_logging was blindly clearing the warnings filter. This caused

PendingDeprecationWarnings to be spewed all over by unittest.failIf*(). Fix
moves over to using warnings.catch_warning to protect the warnings filter.
This commit is contained in:
Brett Cannon 2009-04-01 19:57:10 +00:00
parent 66c4a6b51c
commit 2da4d628a5
2 changed files with 25 additions and 21 deletions

View File

@ -910,30 +910,32 @@ class EncodingTest(BaseTest):
class WarningsTest(BaseTest):
def test_warnings(self):
logging.captureWarnings(True)
warnings.filterwarnings("always", category=UserWarning)
try:
file = cStringIO.StringIO()
h = logging.StreamHandler(file)
logger = logging.getLogger("py.warnings")
logger.addHandler(h)
warnings.warn("I'm warning you...")
logger.removeHandler(h)
s = file.getvalue()
h.close()
self.assertTrue(s.find("UserWarning: I'm warning you...\n") > 0)
with warnings.catch_warnings():
warnings.filterwarnings("always", category=UserWarning)
try:
file = cStringIO.StringIO()
h = logging.StreamHandler(file)
logger = logging.getLogger("py.warnings")
logger.addHandler(h)
warnings.warn("I'm warning you...")
logger.removeHandler(h)
s = file.getvalue()
h.close()
self.assertTrue(s.find("UserWarning: I'm warning you...\n") > 0)
#See if an explicit file uses the original implementation
file = cStringIO.StringIO()
warnings.showwarning("Explicit", UserWarning, "dummy.py", 42, file,
"Dummy line")
s = file.getvalue()
file.close()
self.assertEqual(s, "dummy.py:42: UserWarning: Explicit\n Dummy line\n")
finally:
warnings.resetwarnings()
logging.captureWarnings(False)
#See if an explicit file uses the original implementation
file = cStringIO.StringIO()
warnings.showwarning("Explicit", UserWarning, "dummy.py", 42,
file, "Dummy line")
s = file.getvalue()
file.close()
self.assertEqual(s,
"dummy.py:42: UserWarning: Explicit\n Dummy line\n")
finally:
logging.captureWarnings(False)
# Set the locale to the platform-dependent default. I have no idea
# why the test does this, but in any case we save the current locale

View File

@ -730,6 +730,8 @@ Extension Modules
Tests
-----
- Fix test_logging to no longer reset the warnings filter.
- Issue #5635: Fix running test_sys with tracing enabled.
- regrtest no longer treats ImportError as equivalent to SkipTest. Imports