summaryrefslogtreecommitdiff
path: root/tests/backends
diff options
context:
space:
mode:
authorChris Jerdonek <chris.jerdonek@gmail.com>2016-08-15 07:10:40 -0700
committerTim Graham <timograham@gmail.com>2016-08-23 15:08:20 -0400
commita3db480393d0065fc69834057f0e02a4afc65df9 (patch)
tree5595ed9baf8a4a60e3a8c16707f7690fda55c5da /tests/backends
parentbc1e2d8e8edde6cc7d2657c68242a13ee65a15b8 (diff)
Fixed #27061 -- Added a TEST['TEMPLATE'] setting for PostgreSQL.
Diffstat (limited to 'tests/backends')
-rw-r--r--tests/backends/test_creation.py50
1 files changed, 49 insertions, 1 deletions
diff --git a/tests/backends/test_creation.py b/tests/backends/test_creation.py
index 519b3f049c..d2a615a7e4 100644
--- a/tests/backends/test_creation.py
+++ b/tests/backends/test_creation.py
@@ -1,9 +1,12 @@
import copy
+import unittest
+from contextlib import contextmanager
-from django.db import DEFAULT_DB_ALIAS, connections
+from django.db import DEFAULT_DB_ALIAS, connection, connections
from django.db.backends.base.creation import (
TEST_DATABASE_PREFIX, BaseDatabaseCreation,
)
+from django.db.backends.postgresql.creation import DatabaseCreation
from django.test import SimpleTestCase
@@ -40,3 +43,48 @@ class TestDbSignatureTests(SimpleTestCase):
test_connection.settings_dict['TEST'] = {'NAME': test_name}
signature = BaseDatabaseCreation(test_connection).test_db_signature()
self.assertEqual(signature[3], test_name)
+
+
+@unittest.skipUnless(connection.vendor == 'postgresql', "PostgreSQL-specific tests")
+class PostgreSQLDatabaseCreationTests(SimpleTestCase):
+
+ @contextmanager
+ def changed_test_settings(self, **kwargs):
+ settings = connection.settings_dict['TEST']
+ saved_values = {}
+ for name in kwargs:
+ if name in settings:
+ saved_values[name] = settings[name]
+
+ for name, value in kwargs.items():
+ settings[name] = value
+ try:
+ yield
+ finally:
+ for name, value in kwargs.items():
+ if name in saved_values:
+ settings[name] = saved_values[name]
+ else:
+ del settings[name]
+
+ def check_sql_table_creation_suffix(self, settings, expected):
+ with self.changed_test_settings(**settings):
+ creation = DatabaseCreation(connection)
+ suffix = creation.sql_table_creation_suffix()
+ self.assertEqual(suffix, expected)
+
+ def test_sql_table_creation_suffix_with_none_settings(self):
+ settings = dict(CHARSET=None, TEMPLATE=None)
+ self.check_sql_table_creation_suffix(settings, "")
+
+ def test_sql_table_creation_suffix_with_encoding(self):
+ settings = dict(CHARSET='UTF8')
+ self.check_sql_table_creation_suffix(settings, "WITH ENCODING 'UTF8'")
+
+ def test_sql_table_creation_suffix_with_template(self):
+ settings = dict(TEMPLATE='template0')
+ self.check_sql_table_creation_suffix(settings, 'WITH TEMPLATE "template0"')
+
+ def test_sql_table_creation_suffix_with_encoding_and_template(self):
+ settings = dict(CHARSET='UTF8', TEMPLATE='template0')
+ self.check_sql_table_creation_suffix(settings, '''WITH ENCODING 'UTF8' TEMPLATE "template0"''')