From 2688e810643cd0965926912862c6ab225fc2c974 Mon Sep 17 00:00:00 2001 From: Ezio Melotti Date: Thu, 10 Jan 2013 06:52:23 +0200 Subject: [PATCH] #16905: test_bufio now works with unittest test discovery. Initial patch by Berker Peksag. --- Lib/test/test_warnings.py | 52 +++++++++++++++++---------------------- Misc/NEWS | 3 +++ 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/Lib/test/test_warnings.py b/Lib/test/test_warnings.py index 953b2827be2..464ff40d42f 100644 --- a/Lib/test/test_warnings.py +++ b/Lib/test/test_warnings.py @@ -40,7 +40,7 @@ def warnings_state(module): module.filters = original_filters -class BaseTest(unittest.TestCase): +class BaseTest: """Basic bookkeeping required for testing.""" @@ -63,7 +63,7 @@ class BaseTest(unittest.TestCase): super(BaseTest, self).tearDown() -class FilterTests(object): +class FilterTests(BaseTest): """Testing the filtering functionality.""" @@ -186,14 +186,14 @@ class FilterTests(object): self.assertEqual(str(w[-1].message), text) self.assertTrue(w[-1].category is UserWarning) -class CFilterTests(BaseTest, FilterTests): +class CFilterTests(FilterTests, unittest.TestCase): module = c_warnings -class PyFilterTests(BaseTest, FilterTests): +class PyFilterTests(FilterTests, unittest.TestCase): module = py_warnings -class WarnTests(unittest.TestCase): +class WarnTests(BaseTest): """Test warnings.warn() and warnings.warn_explicit().""" @@ -360,7 +360,7 @@ class WarnTests(unittest.TestCase): self.module.warn(BadStrWarning()) -class CWarnTests(BaseTest, WarnTests): +class CWarnTests(WarnTests, unittest.TestCase): module = c_warnings # As an early adopter, we sanity check the @@ -369,7 +369,7 @@ class CWarnTests(BaseTest, WarnTests): self.assertFalse(original_warnings is self.module) self.assertFalse(hasattr(self.module.warn, '__code__')) -class PyWarnTests(BaseTest, WarnTests): +class PyWarnTests(WarnTests, unittest.TestCase): module = py_warnings # As an early adopter, we sanity check the @@ -379,7 +379,7 @@ class PyWarnTests(BaseTest, WarnTests): self.assertTrue(hasattr(self.module.warn, '__code__')) -class WCmdLineTests(unittest.TestCase): +class WCmdLineTests(BaseTest): def test_improper_input(self): # Uses the private _setoption() function to test the parsing @@ -410,14 +410,14 @@ class WCmdLineTests(unittest.TestCase): self.assertFalse(out.strip()) self.assertNotIn(b'RuntimeWarning', err) -class CWCmdLineTests(BaseTest, WCmdLineTests): +class CWCmdLineTests(WCmdLineTests, unittest.TestCase): module = c_warnings -class PyWCmdLineTests(BaseTest, WCmdLineTests): +class PyWCmdLineTests(WCmdLineTests, unittest.TestCase): module = py_warnings -class _WarningsTests(BaseTest): +class _WarningsTests(BaseTest, unittest.TestCase): """Tests specific to the _warnings module.""" @@ -557,7 +557,7 @@ class _WarningsTests(BaseTest): globals_dict['__file__'] = oldfile -class WarningsDisplayTests(unittest.TestCase): +class WarningsDisplayTests(BaseTest): """Test the displaying of warnings and the ability to overload functions related to displaying warnings.""" @@ -601,10 +601,10 @@ class WarningsDisplayTests(unittest.TestCase): file_object, expected_file_line) self.assertEqual(expect, file_object.getvalue()) -class CWarningsDisplayTests(BaseTest, WarningsDisplayTests): +class CWarningsDisplayTests(WarningsDisplayTests, unittest.TestCase): module = c_warnings -class PyWarningsDisplayTests(BaseTest, WarningsDisplayTests): +class PyWarningsDisplayTests(WarningsDisplayTests, unittest.TestCase): module = py_warnings @@ -710,10 +710,10 @@ class CatchWarningTests(BaseTest): with support.check_warnings(('foo', RuntimeWarning)): wmod.warn("foo") -class CCatchWarningTests(CatchWarningTests): +class CCatchWarningTests(CatchWarningTests, unittest.TestCase): module = c_warnings -class PyCatchWarningTests(CatchWarningTests): +class PyCatchWarningTests(CatchWarningTests, unittest.TestCase): module = py_warnings @@ -762,10 +762,10 @@ class EnvironmentVariableTests(BaseTest): "['ignore:DeprecaciónWarning']".encode('utf-8')) self.assertEqual(p.wait(), 0) -class CEnvironmentVariableTests(EnvironmentVariableTests): +class CEnvironmentVariableTests(EnvironmentVariableTests, unittest.TestCase): module = c_warnings -class PyEnvironmentVariableTests(EnvironmentVariableTests): +class PyEnvironmentVariableTests(EnvironmentVariableTests, unittest.TestCase): module = py_warnings @@ -788,20 +788,12 @@ class BootstrapTest(unittest.TestCase): env=env) self.assertEqual(retcode, 0) -def test_main(): + +def setUpModule(): py_warnings.onceregistry.clear() c_warnings.onceregistry.clear() - support.run_unittest( - CFilterTests, PyFilterTests, - CWarnTests, PyWarnTests, - CWCmdLineTests, PyWCmdLineTests, - _WarningsTests, - CWarningsDisplayTests, PyWarningsDisplayTests, - CCatchWarningTests, PyCatchWarningTests, - CEnvironmentVariableTests, PyEnvironmentVariableTests, - BootstrapTest, - ) +tearDownModule = setUpModule if __name__ == "__main__": - test_main() + unittest.main() diff --git a/Misc/NEWS b/Misc/NEWS index f1e39aeb7e1..a70acd94051 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -408,6 +408,9 @@ Library Tests ----- +- Issue #16905: test_warnings now works with unittest test discovery. + Initial patch by Berker Peksag. + - Issue #16898: test_bufio now works with unittest test discovery. Patch by Zachary Ware.