[Python-checkins] Simplify testing the warning filename (GH-91868)

serhiy-storchaka webhook-mailer at python.org
Sun Apr 24 03:24:10 EDT 2022


https://github.com/python/cpython/commit/090721721b373c50544d297b56c217cf15992cbe
commit: 090721721b373c50544d297b56c217cf15992cbe
branch: main
author: Serhiy Storchaka <storchaka at gmail.com>
committer: serhiy-storchaka <storchaka at gmail.com>
date: 2022-04-24T10:23:59+03:00
summary:

Simplify testing the warning filename (GH-91868)

The context manager result has the "filename" attribute.

files:
M Lib/test/test_asyncio/test_events.py
M Lib/test/test_asyncio/test_futures.py
M Lib/test/test_asyncio/test_streams.py
M Lib/test/test_asyncio/test_tasks.py
M Lib/test/test_re.py
M Lib/unittest/test/test_async_case.py
M Lib/unittest/test/test_case.py
M Lib/unittest/test/test_loader.py

diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py
index a30867e28029f..05d9107b28e2a 100644
--- a/Lib/test/test_asyncio/test_events.py
+++ b/Lib/test/test_asyncio/test_events.py
@@ -2712,12 +2712,12 @@ def get_event_loop(self):
             with self.assertWarns(DeprecationWarning) as cm:
                 with self.assertRaises(TestError):
                     asyncio.get_event_loop()
-            self.assertEqual(cm.warnings[0].filename, __file__)
+            self.assertEqual(cm.filename, __file__)
             asyncio.set_event_loop(None)
             with self.assertWarns(DeprecationWarning) as cm:
                 with self.assertRaises(TestError):
                     asyncio.get_event_loop()
-            self.assertEqual(cm.warnings[0].filename, __file__)
+            self.assertEqual(cm.filename, __file__)
 
             with self.assertRaisesRegex(RuntimeError, 'no running'):
                 asyncio.get_running_loop()
@@ -2734,13 +2734,13 @@ async def func():
             with self.assertWarns(DeprecationWarning) as cm:
                 with self.assertRaises(TestError):
                     asyncio.get_event_loop()
-            self.assertEqual(cm.warnings[0].filename, __file__)
+            self.assertEqual(cm.filename, __file__)
 
             asyncio.set_event_loop(None)
             with self.assertWarns(DeprecationWarning) as cm:
                 with self.assertRaises(TestError):
                     asyncio.get_event_loop()
-            self.assertEqual(cm.warnings[0].filename, __file__)
+            self.assertEqual(cm.filename, __file__)
 
         finally:
             asyncio.set_event_loop_policy(old_policy)
@@ -2762,12 +2762,12 @@ def test_get_event_loop_returns_running_loop2(self):
             with self.assertWarns(DeprecationWarning) as cm:
                 loop2 = asyncio.get_event_loop()
             self.addCleanup(loop2.close)
-            self.assertEqual(cm.warnings[0].filename, __file__)
+            self.assertEqual(cm.filename, __file__)
             asyncio.set_event_loop(None)
             with self.assertWarns(DeprecationWarning) as cm:
                 with self.assertRaisesRegex(RuntimeError, 'no current'):
                     asyncio.get_event_loop()
-            self.assertEqual(cm.warnings[0].filename, __file__)
+            self.assertEqual(cm.filename, __file__)
 
             with self.assertRaisesRegex(RuntimeError, 'no running'):
                 asyncio.get_running_loop()
@@ -2783,13 +2783,13 @@ async def func():
             asyncio.set_event_loop(loop)
             with self.assertWarns(DeprecationWarning) as cm:
                 self.assertIs(asyncio.get_event_loop(), loop)
-            self.assertEqual(cm.warnings[0].filename, __file__)
+            self.assertEqual(cm.filename, __file__)
 
             asyncio.set_event_loop(None)
             with self.assertWarns(DeprecationWarning) as cm:
                 with self.assertRaisesRegex(RuntimeError, 'no current'):
                     asyncio.get_event_loop()
-            self.assertEqual(cm.warnings[0].filename, __file__)
+            self.assertEqual(cm.filename, __file__)
 
         finally:
             asyncio.set_event_loop_policy(old_policy)
diff --git a/Lib/test/test_asyncio/test_futures.py b/Lib/test/test_asyncio/test_futures.py
index cf677f6a95115..f4a46ec90a16f 100644
--- a/Lib/test/test_asyncio/test_futures.py
+++ b/Lib/test/test_asyncio/test_futures.py
@@ -148,7 +148,7 @@ def test_constructor_without_loop(self):
         with self.assertWarns(DeprecationWarning) as cm:
             with self.assertRaisesRegex(RuntimeError, 'There is no current event loop'):
                 self._new_future()
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
 
     def test_constructor_use_running_loop(self):
         async def test():
@@ -163,7 +163,7 @@ def test_constructor_use_global_loop(self):
         self.addCleanup(asyncio.set_event_loop, None)
         with self.assertWarns(DeprecationWarning) as cm:
             f = self._new_future()
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
         self.assertIs(f._loop, self.loop)
         self.assertIs(f.get_loop(), self.loop)
 
@@ -510,7 +510,7 @@ def run(arg):
         with self.assertWarns(DeprecationWarning) as cm:
             with self.assertRaises(RuntimeError):
                 asyncio.wrap_future(f1)
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
         ex.shutdown(wait=True)
 
     def test_wrap_future_use_running_loop(self):
@@ -534,7 +534,7 @@ def run(arg):
         f1 = ex.submit(run, 'oi')
         with self.assertWarns(DeprecationWarning) as cm:
             f2 = asyncio.wrap_future(f1)
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
         self.assertIs(self.loop, f2._loop)
         ex.shutdown(wait=True)
 
diff --git a/Lib/test/test_asyncio/test_streams.py b/Lib/test/test_asyncio/test_streams.py
index a7d17894e1c52..098a0da344d0f 100644
--- a/Lib/test/test_asyncio/test_streams.py
+++ b/Lib/test/test_asyncio/test_streams.py
@@ -813,7 +813,7 @@ def test_streamreader_constructor_without_loop(self):
         with self.assertWarns(DeprecationWarning) as cm:
             with self.assertRaisesRegex(RuntimeError, 'There is no current event loop'):
                 asyncio.StreamReader()
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
 
     def test_streamreader_constructor_use_running_loop(self):
         # asyncio issue #184: Ensure that StreamReaderProtocol constructor
@@ -832,7 +832,7 @@ def test_streamreader_constructor_use_global_loop(self):
         asyncio.set_event_loop(self.loop)
         with self.assertWarns(DeprecationWarning) as cm:
             reader = asyncio.StreamReader()
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
         self.assertIs(reader._loop, self.loop)
 
 
@@ -841,7 +841,7 @@ def test_streamreaderprotocol_constructor_without_loop(self):
         with self.assertWarns(DeprecationWarning) as cm:
             with self.assertRaisesRegex(RuntimeError, 'There is no current event loop'):
                 asyncio.StreamReaderProtocol(reader)
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
 
     def test_streamreaderprotocol_constructor_use_running_loop(self):
         # asyncio issue #184: Ensure that StreamReaderProtocol constructor
@@ -861,7 +861,7 @@ def test_streamreaderprotocol_constructor_use_global_loop(self):
         reader = mock.Mock()
         with self.assertWarns(DeprecationWarning) as cm:
             protocol = asyncio.StreamReaderProtocol(reader)
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
         self.assertIs(protocol._loop, self.loop)
 
     def test_drain_raises(self):
diff --git a/Lib/test/test_asyncio/test_tasks.py b/Lib/test/test_asyncio/test_tasks.py
index 80afb27351362..6458859db2d12 100644
--- a/Lib/test/test_asyncio/test_tasks.py
+++ b/Lib/test/test_asyncio/test_tasks.py
@@ -211,7 +211,7 @@ async def notmuch():
         with self.assertWarns(DeprecationWarning) as cm:
             with self.assertRaisesRegex(RuntimeError, 'There is no current event loop'):
                 asyncio.ensure_future(a)
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
 
         async def test():
             return asyncio.ensure_future(notmuch())
@@ -226,7 +226,7 @@ async def test():
         self.addCleanup(asyncio.set_event_loop, None)
         with self.assertWarns(DeprecationWarning) as cm:
             t = asyncio.ensure_future(notmuch())
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
         self.assertIs(t._loop, self.loop)
         self.loop.run_until_complete(t)
         self.assertTrue(t.done())
@@ -1449,7 +1449,7 @@ async def coro():
         with self.assertWarns(DeprecationWarning) as cm:
             with self.assertRaisesRegex(RuntimeError, 'There is no current event loop'):
                 list(futs)
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
 
     def test_as_completed_coroutine_use_running_loop(self):
         loop = self.new_test_loop()
@@ -1881,7 +1881,7 @@ async def coro():
         with self.assertWarns(DeprecationWarning) as cm:
             with self.assertRaisesRegex(RuntimeError, 'There is no current event loop'):
                 asyncio.shield(inner)
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
 
     def test_shield_coroutine_use_running_loop(self):
         async def coro():
@@ -1903,7 +1903,7 @@ async def coro():
         self.addCleanup(asyncio.set_event_loop, None)
         with self.assertWarns(DeprecationWarning) as cm:
             outer = asyncio.shield(coro())
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
         self.assertEqual(outer._loop, self.loop)
         res = self.loop.run_until_complete(outer)
         self.assertEqual(res, 42)
@@ -2911,7 +2911,7 @@ def test_constructor_empty_sequence_without_loop(self):
         with self.assertWarns(DeprecationWarning) as cm:
             with self.assertRaises(RuntimeError):
                 asyncio.gather()
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
 
     def test_constructor_empty_sequence_use_running_loop(self):
         async def gather():
@@ -2929,7 +2929,7 @@ def test_constructor_empty_sequence_use_global_loop(self):
         self.addCleanup(asyncio.set_event_loop, None)
         with self.assertWarns(DeprecationWarning) as cm:
             fut = asyncio.gather()
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
         self.assertIsInstance(fut, asyncio.Future)
         self.assertIs(fut._loop, self.one_loop)
         self._run_loop(self.one_loop)
@@ -3020,7 +3020,7 @@ async def coro():
         with self.assertWarns(DeprecationWarning) as cm:
             with self.assertRaises(RuntimeError):
                 asyncio.gather(gen1, gen2)
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
 
     def test_constructor_use_running_loop(self):
         async def coro():
@@ -3043,7 +3043,7 @@ async def coro():
         gen2 = coro()
         with self.assertWarns(DeprecationWarning) as cm:
             fut = asyncio.gather(gen1, gen2)
-        self.assertEqual(cm.warnings[0].filename, __file__)
+        self.assertEqual(cm.filename, __file__)
         self.assertIs(fut._loop, self.other_loop)
         self.other_loop.run_until_complete(fut)
 
diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py
index 91971d8126c98..a4c2f1f3e4ba3 100644
--- a/Lib/test/test_re.py
+++ b/Lib/test/test_re.py
@@ -2608,11 +2608,11 @@ def test_deprecated_modules(self):
         for name in deprecated:
             with self.subTest(module=name):
                 sys.modules.pop(name, None)
-                with self.assertWarns(DeprecationWarning) as cm:
+                with self.assertWarns(DeprecationWarning) as w:
                     __import__(name)
-                self.assertEqual(str(cm.warnings[0].message),
+                self.assertEqual(str(w.warning),
                                  f"module {name!r} is deprecated")
-                self.assertEqual(cm.warnings[0].filename, __file__)
+                self.assertEqual(w.filename, __file__)
                 self.assertIn(name, sys.modules)
                 mod = sys.modules[name]
                 self.assertEqual(mod.__name__, name)
diff --git a/Lib/unittest/test/test_async_case.py b/Lib/unittest/test/test_async_case.py
index a48140829cc21..1b910a44eea0d 100644
--- a/Lib/unittest/test/test_async_case.py
+++ b/Lib/unittest/test/test_async_case.py
@@ -259,15 +259,15 @@ async def test2(self):
 
         with self.assertWarns(DeprecationWarning) as w:
             Test('test1').run()
-        self.assertIn('It is deprecated to return a value!=None', str(w.warnings[0].message))
-        self.assertIn('test1', str(w.warnings[0].message))
-        self.assertEqual(w.warnings[0].filename, __file__)
+        self.assertIn('It is deprecated to return a value!=None', str(w.warning))
+        self.assertIn('test1', str(w.warning))
+        self.assertEqual(w.filename, __file__)
 
         with self.assertWarns(DeprecationWarning) as w:
             Test('test2').run()
-        self.assertIn('It is deprecated to return a value!=None', str(w.warnings[0].message))
-        self.assertIn('test2', str(w.warnings[0].message))
-        self.assertEqual(w.warnings[0].filename, __file__)
+        self.assertIn('It is deprecated to return a value!=None', str(w.warning))
+        self.assertIn('test2', str(w.warning))
+        self.assertEqual(w.filename, __file__)
 
     def test_cleanups_interleave_order(self):
         events = []
diff --git a/Lib/unittest/test/test_case.py b/Lib/unittest/test/test_case.py
index f6cb9977d06d4..374a255255566 100644
--- a/Lib/unittest/test/test_case.py
+++ b/Lib/unittest/test/test_case.py
@@ -316,15 +316,15 @@ def test2(self):
 
         with self.assertWarns(DeprecationWarning) as w:
             Foo('test1').run()
-        self.assertIn('It is deprecated to return a value!=None', str(w.warnings[0].message))
-        self.assertIn('test1', str(w.warnings[0].message))
-        self.assertEqual(w.warnings[0].filename, __file__)
+        self.assertIn('It is deprecated to return a value!=None', str(w.warning))
+        self.assertIn('test1', str(w.warning))
+        self.assertEqual(w.filename, __file__)
 
         with self.assertWarns(DeprecationWarning) as w:
             Foo('test2').run()
-        self.assertIn('It is deprecated to return a value!=None', str(w.warnings[0].message))
-        self.assertIn('test2', str(w.warnings[0].message))
-        self.assertEqual(w.warnings[0].filename, __file__)
+        self.assertIn('It is deprecated to return a value!=None', str(w.warning))
+        self.assertIn('test2', str(w.warning))
+        self.assertEqual(w.filename, __file__)
 
     def _check_call_order__subtests(self, result, events, expected_events):
         class Foo(Test.LoggingTestCase):
diff --git a/Lib/unittest/test/test_loader.py b/Lib/unittest/test/test_loader.py
index 90e208182719b..de2268cda9068 100644
--- a/Lib/unittest/test/test_loader.py
+++ b/Lib/unittest/test/test_loader.py
@@ -1609,7 +1609,7 @@ def test_getTestCaseNames(self):
             tests = unittest.getTestCaseNames(self.MyTestCase,
                 prefix='check', sortUsing=self.reverse_three_way_cmp,
                 testNamePatterns=None)
-        self.assertEqual(w.warnings[0].filename, __file__)
+        self.assertEqual(w.filename, __file__)
         self.assertEqual(tests, ['check_2', 'check_1'])
 
     def test_makeSuite(self):
@@ -1617,7 +1617,7 @@ def test_makeSuite(self):
             suite = unittest.makeSuite(self.MyTestCase,
                     prefix='check', sortUsing=self.reverse_three_way_cmp,
                     suiteClass=self.MyTestSuite)
-        self.assertEqual(w.warnings[0].filename, __file__)
+        self.assertEqual(w.filename, __file__)
         self.assertIsInstance(suite, self.MyTestSuite)
         expected = self.MyTestSuite([self.MyTestCase('check_2'),
                                      self.MyTestCase('check_1')])
@@ -1631,7 +1631,7 @@ def test_findTestCases(self):
             suite = unittest.findTestCases(m,
                 prefix='check', sortUsing=self.reverse_three_way_cmp,
                 suiteClass=self.MyTestSuite)
-        self.assertEqual(w.warnings[0].filename, __file__)
+        self.assertEqual(w.filename, __file__)
         self.assertIsInstance(suite, self.MyTestSuite)
         expected = [self.MyTestSuite([self.MyTestCase('check_2'),
                                       self.MyTestCase('check_1')])]



More information about the Python-checkins mailing list