[Python-checkins] bpo-34239: Convert test_bz2 to use tempfile (#8485)

Tim Golden webhook-mailer at python.org
Thu Jul 26 17:05:09 EDT 2018


https://github.com/python/cpython/commit/6a62e1d365934de82ff7c634981b3fbf218b4d5f
commit: 6a62e1d365934de82ff7c634981b3fbf218b4d5f
branch: master
author: Tim Golden <mail at timgolden.me.uk>
committer: GitHub <noreply at github.com>
date: 2018-07-26T22:05:00+01:00
summary:

bpo-34239: Convert test_bz2 to use tempfile (#8485)

* 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

files:
M Lib/test/test_bz2.py

diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index 003497f28b16..e62729a5a2f8 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -6,6 +6,7 @@
 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):



More information about the Python-checkins mailing list