[Python-Dev] [Python-checkins] bpo-34239: Convert test_bz2 to use tempfile (#8485) (original) (raw)
Chris Jerdonek chris.jerdonek at gmail.com
Sat Jul 28 18:54:41 EDT 2018
- Previous message (by thread): [Python-Dev] USE_STACKCHECK and running out of stack
- Next message (by thread): [Python-Dev] [Python-checkins] bpo-34239: Convert test_bz2 to use tempfile (#8485)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, Jul 26, 2018 at 2:05 PM, Tim Golden <webhook-mailer at python.org> wrote:
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 testbz2 to use tempfile (#8485) * bpo-34239: Convert testbz2 to use tempfile testbz2 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.
Per the other thread-- https://mail.python.org/pipermail/python-dev/2018-July/154762.html this seems like a wrong statement of the problem as tests are properly cleaning up after themselves. The leading hypothesis is that unrelated Windows processes are delaying the deletion (e.g. virus scanners).
--Chris
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/testbz2.py diff --git a/Lib/test/testbz2.py b/Lib/test/testbz2.py index 003497f28b16..e62729a5a2f8 100644 --- a/Lib/test/testbz2.py +++ b/Lib/test/testbz2.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): BIGDATA = bz2.compress(BIGTEXT, 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):
Python-checkins mailing list Python-checkins at python.org https://mail.python.org/mailman/listinfo/python-checkins
- Previous message (by thread): [Python-Dev] USE_STACKCHECK and running out of stack
- Next message (by thread): [Python-Dev] [Python-checkins] bpo-34239: Convert test_bz2 to use tempfile (#8485)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]