summaryrefslogtreecommitdiff
path: root/tests/regressiontests
diff options
context:
space:
mode:
authorJacob Kaplan-Moss <jacob@jacobian.org>2009-04-03 20:52:54 +0000
committerJacob Kaplan-Moss <jacob@jacobian.org>2009-04-03 20:52:54 +0000
commitffffdedfd16ec9e8471368afab15782adddf3452 (patch)
treeaad4dcb0d0f9a9484badd7a5539ea773aecda474 /tests/regressiontests
parent374b02e37439340fa9ae075b4ca32cfb13ce593c (diff)
Fixed #9991: correctly introspect PostgreSQL 'real' types.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10379 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests')
-rw-r--r--tests/regressiontests/introspection/tests.py35
1 files changed, 22 insertions, 13 deletions
diff --git a/tests/regressiontests/introspection/tests.py b/tests/regressiontests/introspection/tests.py
index 658470d1ee..ee37a30499 100644
--- a/tests/regressiontests/introspection/tests.py
+++ b/tests/regressiontests/introspection/tests.py
@@ -1,3 +1,4 @@
+from django.conf import settings
from django.db import connection
from django.test import TestCase
from django.utils import functional
@@ -44,11 +45,11 @@ class IntrospectionTests(TestCase):
def test_django_table_names(self):
cursor = connection.cursor()
- cursor.execute('CREATE TABLE django_introspection_testcase_table (id INTEGER);');
+ cursor.execute('CREATE TABLE django_introspection_test_table (id INTEGER);');
tl = connection.introspection.django_table_names()
+ cursor.execute("DROP TABLE django_introspection_test_table;")
self.assert_('django_introspection_testcase_table' not in tl,
"django_table_names() returned a non-Django table")
- cursor.execute("DROP TABLE django_introspection_testcase_table;")
def test_installed_models(self):
tables = [Article._meta.db_table, Reporter._meta.db_table]
@@ -68,20 +69,20 @@ class IntrospectionTests(TestCase):
[f.column for f in Reporter._meta.fields])
def test_get_table_description_types(self):
- cursor = connection.cursor()
+ cursor = connection.cursor()
desc = connection.introspection.get_table_description(cursor, Reporter._meta.db_table)
-
- # Convert the datatype into a string
- def datatype(dbtype):
- dt = connection.introspection.data_types_reverse[dbtype]
- if type(dt) is tuple:
- return dt[0]
- else:
- return dt
-
self.assertEqual([datatype(r[1]) for r in desc],
['IntegerField', 'CharField', 'CharField', 'CharField'])
+ # Regression test for #9991 - 'real' types in postgres
+ if settings.DATABASE_ENGINE.startswith('postgresql'):
+ def test_postgresql_real_type(self):
+ cursor = connection.cursor()
+ cursor.execute("CREATE TABLE django_introspection_real_test_table (number REAL);")
+ desc = connection.introspection.get_table_description(cursor, 'django_introspection_real_test_table')
+ cursor.execute('DROP TABLE django_introspection_real_test_table;')
+ self.assertEqual(datatype(desc[0][1]), 'FloatField')
+
def test_get_relations(self):
cursor = connection.cursor()
relations = connection.introspection.get_relations(cursor, Article._meta.db_table)
@@ -96,4 +97,12 @@ class IntrospectionTests(TestCase):
def test_get_indexes(self):
cursor = connection.cursor()
indexes = connection.introspection.get_indexes(cursor, Article._meta.db_table)
- self.assertEqual(indexes['reporter_id'], {'unique': False, 'primary_key': False}) \ No newline at end of file
+ self.assertEqual(indexes['reporter_id'], {'unique': False, 'primary_key': False})
+
+def datatype(dbtype):
+ """Helper to convert a data type into a string."""
+ dt = connection.introspection.data_types_reverse[dbtype]
+ if type(dt) is tuple:
+ return dt[0]
+ else:
+ return dt