summaryrefslogtreecommitdiff
path: root/tests/postgres_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/postgres_tests')
-rw-r--r--tests/postgres_tests/test_operations.py31
1 files changed, 28 insertions, 3 deletions
diff --git a/tests/postgres_tests/test_operations.py b/tests/postgres_tests/test_operations.py
index 0a9d8040ef..8cc9a2b66e 100644
--- a/tests/postgres_tests/test_operations.py
+++ b/tests/postgres_tests/test_operations.py
@@ -12,7 +12,8 @@ from . import PostgreSQLTestCase
try:
from django.contrib.postgres.operations import (
- AddIndexConcurrently, CreateExtension, RemoveIndexConcurrently,
+ AddIndexConcurrently, BloomExtension, CreateExtension,
+ RemoveIndexConcurrently,
)
from django.contrib.postgres.indexes import BrinIndex, BTreeIndex
except ImportError:
@@ -180,9 +181,33 @@ class CreateExtensionTests(PostgreSQLTestCase):
with CaptureQueriesContext(connection) as captured_queries:
with connection.schema_editor(atomic=False) as editor:
operation.database_forwards(self.app_label, editor, project_state, new_state)
- self.assertIn('CREATE EXTENSION', captured_queries[0]['sql'])
+ self.assertEqual(len(captured_queries), 4)
+ self.assertIn('CREATE EXTENSION', captured_queries[1]['sql'])
# Reversal.
with CaptureQueriesContext(connection) as captured_queries:
with connection.schema_editor(atomic=False) as editor:
operation.database_backwards(self.app_label, editor, new_state, project_state)
- self.assertIn('DROP EXTENSION', captured_queries[0]['sql'])
+ self.assertEqual(len(captured_queries), 2)
+ self.assertIn('DROP EXTENSION', captured_queries[1]['sql'])
+
+ def test_create_existing_extension(self):
+ operation = BloomExtension()
+ project_state = ProjectState()
+ new_state = project_state.clone()
+ # Don't create an existing extension.
+ with CaptureQueriesContext(connection) as captured_queries:
+ with connection.schema_editor(atomic=False) as editor:
+ operation.database_forwards(self.app_label, editor, project_state, new_state)
+ self.assertEqual(len(captured_queries), 3)
+ self.assertIn('SELECT', captured_queries[0]['sql'])
+
+ def test_drop_nonexistent_extension(self):
+ operation = CreateExtension('tablefunc')
+ project_state = ProjectState()
+ new_state = project_state.clone()
+ # Don't drop a nonexistent extension.
+ with CaptureQueriesContext(connection) as captured_queries:
+ with connection.schema_editor(atomic=False) as editor:
+ operation.database_backwards(self.app_label, editor, project_state, new_state)
+ self.assertEqual(len(captured_queries), 1)
+ self.assertIn('SELECT', captured_queries[0]['sql'])