Merged revisions 78769,79049 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r78769 | florent.xicluna | 2010-03-07 21:14:12 +0200 (Sun, 07 Mar 2010) | 2 lines Refresh the documentation for the test.test_support module. ........ r79049 | florent.xicluna | 2010-03-18 21:51:47 +0200 (Thu, 18 Mar 2010) | 2 lines #8155: Preserve backward compatibility for test_support.check_warnings(). Add regression tests. ........
This commit is contained in:
parent
c355eaa9a9
commit
cc436eb6e8
|
@ -457,11 +457,11 @@ def _filterwarnings(filters, quiet=False):
|
||||||
if not seen and not quiet:
|
if not seen and not quiet:
|
||||||
# This filter caught nothing
|
# This filter caught nothing
|
||||||
missing.append((msg, cat.__name__))
|
missing.append((msg, cat.__name__))
|
||||||
for exc in reraise:
|
if reraise:
|
||||||
raise AssertionError("unhandled warning %r" % exc)
|
raise AssertionError("unhandled warning %r" % reraise[0])
|
||||||
for filter in missing:
|
if missing:
|
||||||
raise AssertionError("filter (%r, %s) did not caught any warning" %
|
raise AssertionError("filter (%r, %s) did not catch any warning" %
|
||||||
filter)
|
missing[0])
|
||||||
|
|
||||||
|
|
||||||
@contextlib.contextmanager
|
@contextlib.contextmanager
|
||||||
|
@ -473,14 +473,19 @@ def check_warnings(*filters, **kwargs):
|
||||||
|
|
||||||
Optional argument:
|
Optional argument:
|
||||||
- if 'quiet' is True, it does not fail if a filter catches nothing
|
- if 'quiet' is True, it does not fail if a filter catches nothing
|
||||||
(default False)
|
(default True without argument,
|
||||||
|
default False if some filters are defined)
|
||||||
|
|
||||||
Without argument, it defaults to:
|
Without argument, it defaults to:
|
||||||
check_warnings(("", Warning), quiet=False)
|
check_warnings(("", Warning), quiet=True)
|
||||||
"""
|
"""
|
||||||
|
quiet = kwargs.get('quiet')
|
||||||
if not filters:
|
if not filters:
|
||||||
filters = (("", Warning),)
|
filters = (("", Warning),)
|
||||||
return _filterwarnings(filters, kwargs.get('quiet'))
|
# Preserve backward compatibility
|
||||||
|
if quiet is None:
|
||||||
|
quiet = True
|
||||||
|
return _filterwarnings(filters, quiet)
|
||||||
|
|
||||||
|
|
||||||
@contextlib.contextmanager
|
@contextlib.contextmanager
|
||||||
|
|
|
@ -600,8 +600,9 @@ class CatchWarningTests(BaseTest):
|
||||||
def test_check_warnings(self):
|
def test_check_warnings(self):
|
||||||
# Explicit tests for the test_support convenience wrapper
|
# Explicit tests for the test_support convenience wrapper
|
||||||
wmod = self.module
|
wmod = self.module
|
||||||
if wmod is sys.modules['warnings']:
|
if wmod is not sys.modules['warnings']:
|
||||||
with test_support.check_warnings() as w:
|
return
|
||||||
|
with test_support.check_warnings(quiet=False) as w:
|
||||||
self.assertEqual(w.warnings, [])
|
self.assertEqual(w.warnings, [])
|
||||||
wmod.simplefilter("always")
|
wmod.simplefilter("always")
|
||||||
wmod.warn("foo")
|
wmod.warn("foo")
|
||||||
|
@ -613,6 +614,19 @@ class CatchWarningTests(BaseTest):
|
||||||
w.reset()
|
w.reset()
|
||||||
self.assertEqual(w.warnings, [])
|
self.assertEqual(w.warnings, [])
|
||||||
|
|
||||||
|
with test_support.check_warnings():
|
||||||
|
# defaults to quiet=True without argument
|
||||||
|
pass
|
||||||
|
with test_support.check_warnings(('foo', UserWarning)):
|
||||||
|
wmod.warn("foo")
|
||||||
|
|
||||||
|
with self.assertRaises(AssertionError):
|
||||||
|
with test_support.check_warnings(('', RuntimeWarning)):
|
||||||
|
# defaults to quiet=False with argument
|
||||||
|
pass
|
||||||
|
with self.assertRaises(AssertionError):
|
||||||
|
with test_support.check_warnings(('foo', RuntimeWarning)):
|
||||||
|
wmod.warn("foo")
|
||||||
|
|
||||||
|
|
||||||
class CCatchWarningTests(CatchWarningTests):
|
class CCatchWarningTests(CatchWarningTests):
|
||||||
|
|
Loading…
Reference in New Issue