summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/db/backends/__init__.py1
-rw-r--r--tests/regressiontests/introspection/tests.py11
2 files changed, 12 insertions, 0 deletions
diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py
index ebe8875e42..7674f5c879 100644
--- a/django/db/backends/__init__.py
+++ b/django/db/backends/__init__.py
@@ -905,6 +905,7 @@ class BaseDatabaseIntrospection(object):
continue
tables.add(model._meta.db_table)
tables.update([f.m2m_db_table() for f in model._meta.local_many_to_many])
+ tables = list(tables)
if only_existing:
existing_tables = self.table_names()
tables = [
diff --git a/tests/regressiontests/introspection/tests.py b/tests/regressiontests/introspection/tests.py
index fa2b6c5d73..c3d3533f94 100644
--- a/tests/regressiontests/introspection/tests.py
+++ b/tests/regressiontests/introspection/tests.py
@@ -53,6 +53,17 @@ class IntrospectionTests(TestCase):
self.assertTrue('django_ixn_testcase_table' not in tl,
"django_table_names() returned a non-Django table")
+ def test_django_table_names_retval_type(self):
+ # Ticket #15216
+ cursor = connection.cursor()
+ cursor.execute('CREATE TABLE django_ixn_test_table (id INTEGER);')
+
+ tl = connection.introspection.django_table_names(only_existing=True)
+ self.assertIs(type(tl), list)
+
+ tl = connection.introspection.django_table_names(only_existing=False)
+ self.assertIs(type(tl), list)
+
def test_installed_models(self):
tables = [Article._meta.db_table, Reporter._meta.db_table]
models = connection.introspection.installed_models(tables)