Skipped PostGIS version tests when psycopg2 not installed

Refs #22334. Thanks Tim Graham for spotting the issue.
This commit is contained in:
Claude Paroz 2014-03-29 19:24:14 +01:00
parent 88f1e3d93d
commit e819a3cd62
1 changed files with 25 additions and 18 deletions

View File

@ -1,32 +1,39 @@
import unittest
from django.contrib.gis.db.backends.postgis.operations import PostGISOperations
from django.core.exceptions import ImproperlyConfigured
from django.db import ProgrammingError
class FakeConnection(object):
def __init__(self):
self.settings_dict = {
'NAME': 'test',
}
try:
from django.contrib.gis.db.backends.postgis.operations import PostGISOperations
HAS_POSTGRES = True
except ImportError:
HAS_POSTGRES = False
class FakePostGISOperations(PostGISOperations):
def __init__(self, version=None):
self.version = version
self.connection = FakeConnection()
if HAS_POSTGRES:
class FakeConnection(object):
def __init__(self):
self.settings_dict = {
'NAME': 'test',
}
def _get_postgis_func(self, func):
if func == 'postgis_lib_version':
if self.version is None:
raise ProgrammingError
class FakePostGISOperations(PostGISOperations):
def __init__(self, version=None):
self.version = version
self.connection = FakeConnection()
def _get_postgis_func(self, func):
if func == 'postgis_lib_version':
if self.version is None:
raise ProgrammingError
else:
return self.version
else:
return self.version
else:
raise NotImplementedError('This function was not expected to be called')
raise NotImplementedError('This function was not expected to be called')
@unittest.skipUnless(HAS_POSTGRES, "The psycopg2 driver is needed for these tests")
class TestPostgisVersionCheck(unittest.TestCase):
"""
Tests that the postgis version check parses correctly the version numbers