]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-91513: Tidied up a test and did minor refactoring around test filename gener…...
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Thu, 26 May 2022 16:11:15 +0000 (17:11 +0100)
committerGitHub <noreply@github.com>
Thu, 26 May 2022 16:11:15 +0000 (17:11 +0100)
Lib/test/test_logging.py

index 07804a2686a14085b8bf39fb5bc3b4eb2142d340..1c5e8523754cacc6f4fa99d615206118d9f63a5b 100644 (file)
@@ -540,6 +540,12 @@ class CustomLevelsAndFiltersTest(BaseTest):
             handler.removeFilter(garr)
 
 
+def make_temp_file(*args, **kwargs):
+    fd, fn = tempfile.mkstemp(*args, **kwargs)
+    os.close(fd)
+    return fn
+
+
 class HandlerTest(BaseTest):
     def test_name(self):
         h = logging.Handler()
@@ -554,8 +560,7 @@ class HandlerTest(BaseTest):
         # but we can try instantiating them with various options
         if sys.platform in ('linux', 'darwin'):
             for existing in (True, False):
-                fd, fn = tempfile.mkstemp()
-                os.close(fd)
+                fn = make_temp_file()
                 if not existing:
                     os.unlink(fn)
                 h = logging.handlers.WatchedFileHandler(fn, encoding='utf-8', delay=True)
@@ -609,8 +614,7 @@ class HandlerTest(BaseTest):
 
         See Issue #27493.
         """
-        fd, fn = tempfile.mkstemp()
-        os.close(fd)
+        fn = make_temp_file()
         os.unlink(fn)
         pfn = pathlib.Path(fn)
         cases = (
@@ -649,8 +653,7 @@ class HandlerTest(BaseTest):
         self.deletion_time = None
 
         for delay in (False, True):
-            fd, fn = tempfile.mkstemp('.log', 'test_logging-3-')
-            os.close(fd)
+            fn = make_temp_file('.log', 'test_logging-3-')
             remover = threading.Thread(target=remove_loop, args=(fn, del_count))
             remover.daemon = True
             remover.start()
@@ -1596,8 +1599,7 @@ class ConfigFileTest(BaseTest):
             os.remove(fn)
 
         with self.check_no_resource_warning():
-            fd, fn = tempfile.mkstemp(".log", "test_logging-X-")
-            os.close(fd)
+            fn = make_temp_file(".log", "test_logging-X-")
 
             # Replace single backslash with double backslash in windows
             # to avoid unicode error during string formatting
@@ -1782,8 +1784,7 @@ class SocketHandlerTest(BaseTest):
         self.root_logger.error('Nor this')
 
 def _get_temp_domain_socket():
-    fd, fn = tempfile.mkstemp(prefix='test_logging_', suffix='.sock')
-    os.close(fd)
+    fn = make_temp_file(prefix='test_logging_', suffix='.sock')
     # just need a name - file can't be present, or we'll get an
     # 'address already in use' error.
     os.remove(fn)
@@ -2135,8 +2136,7 @@ class EncodingTest(BaseTest):
     def test_encoding_plain_file(self):
         # In Python 2.x, a plain file object is treated as having no encoding.
         log = logging.getLogger("test")
-        fd, fn = tempfile.mkstemp(".log", "test_logging-1-")
-        os.close(fd)
+        fn = make_temp_file(".log", "test_logging-1-")
         # the non-ascii data we write to the log.
         data = "foo\x80"
         try:
@@ -3227,8 +3227,7 @@ class ConfigDictTest(BaseTest):
             os.remove(fn)
 
         with self.check_no_resource_warning():
-            fd, fn = tempfile.mkstemp(".log", "test_logging-X-")
-            os.close(fd)
+            fn = make_temp_file(".log", "test_logging-X-")
 
             config = {
                 "version": 1,
@@ -4891,10 +4890,14 @@ class BasicConfigTest(unittest.TestCase):
         async def log_record():
             logging.warning('hello world')
 
+        handler = None
+        log_filename = make_temp_file('.log', 'test-logging-taskname-')
+        self.addCleanup(os.remove, log_filename)
         try:
             encoding = 'utf-8'
-            logging.basicConfig(filename='test.log', errors='strict', encoding=encoding,
-                                format='%(taskName)s - %(message)s', level=logging.WARNING)
+            logging.basicConfig(filename=log_filename, errors='strict',
+                                encoding=encoding, level=logging.WARNING,
+                                format='%(taskName)s - %(message)s')
 
             self.assertEqual(len(logging.root.handlers), 1)
             handler = logging.root.handlers[0]
@@ -4903,13 +4906,13 @@ class BasicConfigTest(unittest.TestCase):
             with asyncio.Runner(debug=True) as runner:
                 logging.logAsyncioTasks = True
                 runner.run(log_record())
-        finally:
-            asyncio.set_event_loop_policy(None)
-            handler.close()
-            with open('test.log', encoding='utf-8') as f:
+            with open(log_filename, encoding='utf-8') as f:
                 data = f.read().strip()
-            os.remove('test.log')
             self.assertRegex(data, r'Task-\d+ - hello world')
+        finally:
+            asyncio.set_event_loop_policy(None)
+            if handler:
+                handler.close()
 
 
     def _test_log(self, method, level=None):
@@ -5294,8 +5297,7 @@ class BaseFileTest(BaseTest):
 
     def setUp(self):
         BaseTest.setUp(self)
-        fd, self.fn = tempfile.mkstemp(".log", "test_logging-2-")
-        os.close(fd)
+        self.fn = make_temp_file(".log", "test_logging-2-")
         self.rmfiles = []
 
     def tearDown(self):