Fixed #24290 -- Skipped postgres_tests if not running with PostgreSQL.

This commit is contained in:
Tim Graham 2015-02-16 18:10:35 -05:00
parent 3adc5f1ee6
commit 8b39f33d78
5 changed files with 6 additions and 16 deletions

View File

@ -18,7 +18,6 @@ from .models import (
) )
@unittest.skipUnless(connection.vendor == 'postgresql', 'PostgreSQL required')
class TestSaveLoad(TestCase): class TestSaveLoad(TestCase):
def test_integer(self): def test_integer(self):
@ -94,7 +93,6 @@ class TestSaveLoad(TestCase):
self.assertEqual(instance.decimals, loaded.decimals) self.assertEqual(instance.decimals, loaded.decimals)
@unittest.skipUnless(connection.vendor == 'postgresql', 'PostgreSQL required')
class TestQuerying(TestCase): class TestQuerying(TestCase):
def setUp(self): def setUp(self):
@ -274,7 +272,6 @@ class TestMigrations(TransactionTestCase):
name, path, args, kwargs = field.deconstruct() name, path, args, kwargs = field.deconstruct()
self.assertEqual(path, 'postgres_tests.models.ArrayFieldSubclass') self.assertEqual(path, 'postgres_tests.models.ArrayFieldSubclass')
@unittest.skipUnless(connection.vendor == 'postgresql', 'PostgreSQL required')
@override_settings(MIGRATION_MODULES={ @override_settings(MIGRATION_MODULES={
"postgres_tests": "postgres_tests.array_default_migrations", "postgres_tests": "postgres_tests.array_default_migrations",
}) })
@ -291,7 +288,6 @@ class TestMigrations(TransactionTestCase):
self.assertNotIn(table_name, connection.introspection.table_names(cursor)) self.assertNotIn(table_name, connection.introspection.table_names(cursor))
@unittest.skipUnless(connection.vendor == 'postgresql', 'PostgreSQL required')
class TestSerialization(TestCase): class TestSerialization(TestCase):
test_data = '[{"fields": {"field": "[\\"1\\", \\"2\\"]"}, "model": "postgres_tests.integerarraymodel", "pk": null}]' test_data = '[{"fields": {"field": "[\\"1\\", \\"2\\"]"}, "model": "postgres_tests.integerarraymodel", "pk": null}]'

View File

@ -1,17 +1,14 @@
import json import json
import unittest
from django.contrib.postgres import forms from django.contrib.postgres import forms
from django.contrib.postgres.fields import HStoreField from django.contrib.postgres.fields import HStoreField
from django.contrib.postgres.validators import KeysValidator from django.contrib.postgres.validators import KeysValidator
from django.core import exceptions, serializers from django.core import exceptions, serializers
from django.db import connection
from django.test import TestCase from django.test import TestCase
from .models import HStoreModel from .models import HStoreModel
@unittest.skipUnless(connection.vendor == 'postgresql', 'PostgreSQL required')
class SimpleTests(TestCase): class SimpleTests(TestCase):
apps = ['django.contrib.postgres'] apps = ['django.contrib.postgres']
@ -36,7 +33,6 @@ class SimpleTests(TestCase):
self.assertEqual(reloaded.field, value) self.assertEqual(reloaded.field, value)
@unittest.skipUnless(connection.vendor == 'postgresql', 'PostgreSQL required')
class TestQuerying(TestCase): class TestQuerying(TestCase):
def setUp(self): def setUp(self):
@ -115,7 +111,6 @@ class TestQuerying(TestCase):
) )
@unittest.skipUnless(connection.vendor == 'postgresql', 'PostgreSQL required')
class TestSerialization(TestCase): class TestSerialization(TestCase):
test_data = '[{"fields": {"field": "{\\"a\\": \\"b\\"}"}, "model": "postgres_tests.hstoremodel", "pk": null}]' test_data = '[{"fields": {"field": "{\\"a\\": \\"b\\"}"}, "model": "postgres_tests.hstoremodel", "pk": null}]'

View File

@ -18,8 +18,6 @@ from .models import RangesModel
def skipUnlessPG92(test): def skipUnlessPG92(test):
if not connection.vendor == 'postgresql':
return unittest.skip('PostgreSQL required')(test)
PG_VERSION = connection.pg_version PG_VERSION = connection.pg_version
if PG_VERSION < 90200: if PG_VERSION < 90200:
return unittest.skip('PostgreSQL >= 9.2 required')(test) return unittest.skip('PostgreSQL >= 9.2 required')(test)

View File

@ -1,15 +1,11 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from __future__ import unicode_literals from __future__ import unicode_literals
import unittest
from django.db import connection
from django.test import TestCase, modify_settings from django.test import TestCase, modify_settings
from .models import CharFieldModel, TextFieldModel from .models import CharFieldModel, TextFieldModel
@unittest.skipUnless(connection.vendor == 'postgresql', 'PostgreSQL required')
@modify_settings(INSTALLED_APPS={'append': 'django.contrib.postgres'}) @modify_settings(INSTALLED_APPS={'append': 'django.contrib.postgres'})
class UnaccentTest(TestCase): class UnaccentTest(TestCase):

View File

@ -84,7 +84,7 @@ def get_test_modules():
os.path.isfile(f) or os.path.isfile(f) or
not os.path.exists(os.path.join(dirpath, f, '__init__.py'))): not os.path.exists(os.path.join(dirpath, f, '__init__.py'))):
continue continue
if not connection.vendor == 'postgresql' and f == 'postgres_tests' or f == 'postgres': if connection.vendor != 'postgresql' and f == 'postgres_tests':
continue continue
modules.append((modpath, f)) modules.append((modpath, f))
return modules return modules
@ -230,6 +230,11 @@ def django_tests(verbosity, interactive, failfast, keepdb, reverse, test_labels,
state = setup(verbosity, test_labels) state = setup(verbosity, test_labels)
extra_tests = [] extra_tests = []
if test_labels and 'postgres_tests' in test_labels and connection.vendor != 'postgres':
if verbosity >= 2:
print("Removed postgres_tests from tests as we're not running with PostgreSQL.")
test_labels.remove('postgres_tests')
# Run the test suite, including the extra validation tests. # Run the test suite, including the extra validation tests.
if not hasattr(settings, 'TEST_RUNNER'): if not hasattr(settings, 'TEST_RUNNER'):
settings.TEST_RUNNER = 'django.test.runner.DiscoverRunner' settings.TEST_RUNNER = 'django.test.runner.DiscoverRunner'