From b9feec959b9dfc08513607c9046fb38c5b8f7e8a Mon Sep 17 00:00:00 2001
From: Tim Graham <timograham@gmail.com>
Date: Thu, 1 Jan 2015 13:54:25 -0500
Subject: [PATCH] Fixed #23700 -- Fixed non-deterministic static files test
 failures on Windows.

This partially reverts commit 949ee521fab106b44218c30577eb55f0097d39cd
refs #21230.
---
 .../project/site_media/static/testfile.txt               | 1 +
 tests/staticfiles_tests/tests.py                         | 9 +++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)
 create mode 100644 tests/staticfiles_tests/project/site_media/static/testfile.txt

diff --git a/tests/staticfiles_tests/project/site_media/static/testfile.txt b/tests/staticfiles_tests/project/site_media/static/testfile.txt
new file mode 100644
index 0000000000..4d92dbe1ad
--- /dev/null
+++ b/tests/staticfiles_tests/project/site_media/static/testfile.txt
@@ -0,0 +1 @@
+Test!
\ No newline at end of file
diff --git a/tests/staticfiles_tests/tests.py b/tests/staticfiles_tests/tests.py
index ffce4d047b..1d5ccfc075 100644
--- a/tests/staticfiles_tests/tests.py
+++ b/tests/staticfiles_tests/tests.py
@@ -6,6 +6,7 @@ import os
 import posixpath
 import shutil
 import sys
+import tempfile
 import unittest
 
 from django.template import Context, Template
@@ -129,13 +130,17 @@ class BaseCollectionTestCase(BaseStaticFilesTestCase):
     """
     def setUp(self):
         super(BaseCollectionTestCase, self).setUp()
-        if not os.path.exists(settings.STATIC_ROOT):
-            os.mkdir(settings.STATIC_ROOT)
+        self.old_root = settings.STATIC_ROOT
+        settings.STATIC_ROOT = tempfile.mkdtemp(dir=os.environ['DJANGO_TEST_TEMP_DIR'])
         self.run_collectstatic()
         # Use our own error handler that can handle .svn dirs on Windows
         self.addCleanup(shutil.rmtree, settings.STATIC_ROOT,
                         ignore_errors=True, onerror=rmtree_errorhandler)
 
+    def tearDown(self):
+        settings.STATIC_ROOT = self.old_root
+        super(BaseCollectionTestCase, self).tearDown()
+
     def run_collectstatic(self, **kwargs):
         call_command('collectstatic', interactive=False, verbosity=0,
                      ignore_patterns=['*.ignoreme'], **kwargs)