]> granicus.if.org Git - python/commitdiff
bpo-34239: Convert test_bz2 to use tempfile (#8485)
authorTim Golden <mail@timgolden.me.uk>
Thu, 26 Jul 2018 21:05:00 +0000 (22:05 +0100)
committerGitHub <noreply@github.com>
Thu, 26 Jul 2018 21:05:00 +0000 (22:05 +0100)
* bpo-34239: Convert test_bz2 to use tempfile

test_bz2 currently uses the test.support.TESTFN functionality which creates a temporary file local to the test directory named around the pid.

This can give rise to race conditions where tests are competing with each other to delete and recreate the file.

This change converts the tests to use tempfile.mkstemp which gives a different file every time from the system's temp area

Lib/test/test_bz2.py

index 003497f28b1624471139708e3914b557d13ab316..e62729a5a2f827c1712942056bb4b96ae6fa56bb 100644 (file)
@@ -6,6 +6,7 @@ from io import BytesIO, DEFAULT_BUFFER_SIZE
 import os
 import pickle
 import glob
+import tempfile
 import pathlib
 import random
 import shutil
@@ -76,11 +77,14 @@ class BaseTest(unittest.TestCase):
     BIG_DATA = bz2.compress(BIG_TEXT, compresslevel=1)
 
     def setUp(self):
-        self.filename = support.TESTFN
+        fd, self.filename = tempfile.mkstemp()
+        os.close(fd)
 
     def tearDown(self):
-        if os.path.isfile(self.filename):
+        try:
             os.unlink(self.filename)
+        except FileNotFoundError:
+            pass
 
 
 class BZ2FileTest(BaseTest):