mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #18782 -- Prevented sql_flush to flush views
Thanks rodolfo_3 for the report and the initial patch, and Josh Smeaton, Shai Berger and Tim Graham for the reviews.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import connection
|
||||
from django.db.utils import DatabaseError
|
||||
from django.test import TestCase, skipUnlessDBFeature
|
||||
|
||||
from .models import Reporter, Article
|
||||
@@ -34,6 +35,23 @@ class IntrospectionTests(TestCase):
|
||||
tl = connection.introspection.django_table_names(only_existing=False)
|
||||
self.assertIs(type(tl), list)
|
||||
|
||||
def test_table_names_with_views(self):
|
||||
with connection.cursor() as cursor:
|
||||
try:
|
||||
cursor.execute(
|
||||
'CREATE VIEW introspection_article_view AS SELECT headline '
|
||||
'from introspection_article;')
|
||||
except DatabaseError as e:
|
||||
if 'insufficient privileges' in str(e):
|
||||
self.skipTest("The test user has no CREATE VIEW privileges")
|
||||
else:
|
||||
raise
|
||||
|
||||
self.assertIn('introspection_article_view',
|
||||
connection.introspection.table_names(include_views=True))
|
||||
self.assertNotIn('introspection_article_view',
|
||||
connection.introspection.table_names())
|
||||
|
||||
def test_installed_models(self):
|
||||
tables = [Article._meta.db_table, Reporter._meta.db_table]
|
||||
models = connection.introspection.installed_models(tables)
|
||||
|
||||
Reference in New Issue
Block a user