From b79bf9c7a9c1bc0e3cf0c5c4b0d8191a3033530b Mon Sep 17 00:00:00 2001
From: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Sun, 12 Jan 2014 18:24:04 +0100
Subject: [PATCH] [1.6.x] Fixed a test isolation issue. Refs #17062.

This test could change settings.DATABASES['default']['TIME_ZONE'] and
didn't restore the previous value.

Backport of 1c24096f from master.
---
 tests/backends/tests.py | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/tests/backends/tests.py b/tests/backends/tests.py
index 56d47e786e..be0c3a418f 100644
--- a/tests/backends/tests.py
+++ b/tests/backends/tests.py
@@ -2,6 +2,7 @@
 # Unit and doctests for specific database backends.
 from __future__ import absolute_import, unicode_literals
 
+import copy
 import datetime
 from decimal import Decimal
 import threading
@@ -315,16 +316,18 @@ class PostgresVersionTest(TestCase):
         self.assertEqual(pg_version.get_version(conn), 80300)
 
 
-class PostgresNewConnectionTest(TestCase):
-    """
-    #17062: PostgreSQL shouldn't roll back SET TIME ZONE, even if the first
-    transaction is rolled back.
-    """
+class PostgresNewConnectionTests(TestCase):
+
     @unittest.skipUnless(
         connection.vendor == 'postgresql',
         "This test applies only to PostgreSQL")
     def test_connect_and_rollback(self):
-        new_connections = ConnectionHandler(settings.DATABASES)
+        """
+        PostgreSQL shouldn't roll back SET TIME ZONE, even if the first
+        transaction is rolled back (#17062).
+        """
+        databases = copy.deepcopy(settings.DATABASES)
+        new_connections = ConnectionHandler(databases)
         new_connection = new_connections[DEFAULT_DB_ALIAS]
         try:
             # Ensure the database default time zone is different than