diff options
| author | Chris Jerdonek <chris.jerdonek@gmail.com> | 2016-08-15 07:10:40 -0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-08-23 15:08:20 -0400 |
| commit | a3db480393d0065fc69834057f0e02a4afc65df9 (patch) | |
| tree | 5595ed9baf8a4a60e3a8c16707f7690fda55c5da /tests | |
| parent | bc1e2d8e8edde6cc7d2657c68242a13ee65a15b8 (diff) | |
Fixed #27061 -- Added a TEST['TEMPLATE'] setting for PostgreSQL.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/backends/test_creation.py | 50 |
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"''') |
