From eaa3c883450f3c7ea939992ed075257bbac3d8b2 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Wed, 9 Sep 2015 14:08:35 -0400 Subject: [PATCH] Refs #22258 -- Fixed an unclosed temporary file in fixtures test. This prevented the temporary directory from being removed on Windows. --- tests/fixtures/tests.py | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/tests/fixtures/tests.py b/tests/fixtures/tests.py index 4c0c9ee88f..a89b33aa65 100644 --- a/tests/fixtures/tests.py +++ b/tests/fixtures/tests.py @@ -9,6 +9,7 @@ import warnings from django.apps import apps from django.contrib.sites.models import Site from django.core import management +from django.core.files.temp import NamedTemporaryFile from django.core.serializers.base import ProgressBar from django.db import IntegrityError, connection from django.test import ( @@ -295,22 +296,22 @@ class FixtureLoadingTests(DumpDataAssertMixin, TestCase): management.call_command('loaddata', 'fixture1.json', verbosity=0) new_io = six.StringIO() new_io.isatty = lambda: True - _, filename = tempfile.mkstemp() - options = { - 'format': 'json', - 'stdout': new_io, - 'stderr': new_io, - 'output': filename, - } - management.call_command('dumpdata', 'fixtures', **options) - self.assertTrue(new_io.getvalue().endswith('[' + '.' * ProgressBar.progress_width + ']\n')) + with NamedTemporaryFile() as file: + options = { + 'format': 'json', + 'stdout': new_io, + 'stderr': new_io, + 'output': file.name, + } + management.call_command('dumpdata', 'fixtures', **options) + self.assertTrue(new_io.getvalue().endswith('[' + '.' * ProgressBar.progress_width + ']\n')) - # Test no progress bar when verbosity = 0 - options['verbosity'] = 0 - new_io = six.StringIO() - new_io.isatty = lambda: True - management.call_command('dumpdata', 'fixtures', **options) - self.assertEqual(new_io.getvalue(), '') + # Test no progress bar when verbosity = 0 + options['verbosity'] = 0 + new_io = six.StringIO() + new_io.isatty = lambda: True + management.call_command('dumpdata', 'fixtures', **options) + self.assertEqual(new_io.getvalue(), '') def test_compress_format_loading(self): # Load fixture 4 (compressed), using format specification