From 13a2b11425f87f674f0273af5fa70c1e4cf327ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anssi=20K=C3=A4=C3=A4ri=C3=A4inen?= Date: Sat, 29 Dec 2012 16:30:17 +0200 Subject: [PATCH] Avoided having an indexed TextField installed unless using postgres An index on TextField results in a warning message when running tests on MySQL or SQLite, and the test using the TextField was PostgreSQL only in any case. --- tests/regressiontests/indexes/models.py | 11 +++++++---- tests/regressiontests/indexes/tests.py | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/regressiontests/indexes/models.py b/tests/regressiontests/indexes/models.py index 47ba5896a8aef..4ab74d25bd3d8 100644 --- a/tests/regressiontests/indexes/models.py +++ b/tests/regressiontests/indexes/models.py @@ -1,3 +1,4 @@ +from django.db import connection from django.db import models @@ -11,7 +12,9 @@ class Meta: ] -class IndexedArticle(models.Model): - headline = models.CharField(max_length=100, db_index=True) - body = models.TextField(db_index=True) - slug = models.CharField(max_length=40, unique=True, db_index=True) +# Indexing a TextField on Oracle or MySQL results in index creation error. +if connection.vendor == 'postgresql': + class IndexedArticle(models.Model): + headline = models.CharField(max_length=100, db_index=True) + body = models.TextField(db_index=True) + slug = models.CharField(max_length=40, unique=True, db_index=True) diff --git a/tests/regressiontests/indexes/tests.py b/tests/regressiontests/indexes/tests.py index f3a32a44bbcd5..672e35d2862a1 100644 --- a/tests/regressiontests/indexes/tests.py +++ b/tests/regressiontests/indexes/tests.py @@ -3,7 +3,7 @@ from django.test import TestCase from django.utils.unittest import skipUnless -from .models import Article, IndexedArticle +from .models import Article class IndexesTests(TestCase): @@ -16,6 +16,7 @@ def test_index_together(self): "This is a postgresql-specific issue") def test_postgresql_text_indexes(self): """Test creation of PostgreSQL-specific text indexes (#12234)""" + from .models import IndexedArticle connection = connections[DEFAULT_DB_ALIAS] index_sql = connection.creation.sql_indexes_for_model(IndexedArticle, no_style()) self.assertEqual(len(index_sql), 5)