1
0
mirror of https://github.com/django/django.git synced 2025-07-05 10:19:20 +00:00

gis: modifed tests and mixin to use the HAS_GDAL flag.

git-svn-id: http://code.djangoproject.com/svn/django/branches/gis@6413 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Justin Bronn 2007-09-24 20:29:27 +00:00
parent 07963be5df
commit 1025326602
2 changed files with 23 additions and 27 deletions

View File

@ -1,15 +1,10 @@
from warnings import warn from warnings import warn
# GEOS is a requirement # GEOS is a requirement, GDAL is not
from django.contrib.gis.geos import GEOSGeometry from django.contrib.gis.geos import GEOSGeometry
from django.contrib.gis.gdal import HAS_GDAL
# GDAL is a lot more complicated to install, and isn't necessary for many if HAS_GDAL:
# operations.
try:
from django.contrib.gis.gdal import OGRGeometry, SpatialReference from django.contrib.gis.gdal import OGRGeometry, SpatialReference
HAS_GDAL = True
except ImportError, e:
HAS_GDAL = False
# Until model subclassing is a possibility, a mixin class is used to add # Until model subclassing is a possibility, a mixin class is used to add
# the necessary functions that may be contributed for geographic objects. # the necessary functions that may be contributed for geographic objects.

View File

@ -1,23 +1,23 @@
import sys
from copy import copy from copy import copy
from unittest import TestSuite, TextTestRunner from unittest import TestSuite, TextTestRunner
import sys from django.contrib.gis.gdal import HAS_GDAL
# Tests that do not require setting up and tearing down a spatial database. # Tests that do not require setting up and tearing down a spatial database.
test_suite_names = [ test_suite_names = [
'test_geos', 'test_geos',
'test_measure', 'test_measure',
] ]
try: if HAS_GDAL:
# GDAL tests
import django.contrib.gis.gdal
test_suite_names += [ test_suite_names += [
'test_gdal_driver', 'test_gdal_driver',
'test_gdal_ds', 'test_gdal_ds',
'test_gdal_geom', 'test_gdal_geom',
'test_gdal_srs', 'test_gdal_srs',
'test_spatialrefsys', 'test_spatialrefsys',
] ]
except ImportError, e: else:
print >>sys.stderr, "GDAL not available - no GDAL tests will be run." print >>sys.stderr, "GDAL not available - no GDAL tests will be run."
test_models = ['geoapp'] test_models = ['geoapp']
@ -35,27 +35,28 @@ def run(verbosity=1):
TextTestRunner(verbosity=verbosity).run(suite()) TextTestRunner(verbosity=verbosity).run(suite())
def run_tests(module_list, verbosity=1, interactive=True): def run_tests(module_list, verbosity=1, interactive=True):
"""Run the tests that require creation of a spatial database. Does not """
yet work on Windows platforms. Run the tests that require creation of a spatial database. Does not
yet work on Windows platforms.
In order to run geographic model tests the DATABASE_USER will require In order to run geographic model tests the DATABASE_USER will require
superuser priviliges. To accomplish this outside the `postgres` user, superuser priviliges. To accomplish this outside the `postgres` user,
create your own PostgreSQL database as a user: create your own PostgreSQL database as a user:
(1) Initialize database: `initdb -D /path/to/user/db` (1) Initialize database: `initdb -D /path/to/user/db`
(2) If there's already a Postgres instance on the machine, it will need (2) If there's already a Postgres instance on the machine, it will need
to use a different TCP port than 5432. Edit postgresql.conf (in to use a different TCP port than 5432. Edit postgresql.conf (in
/path/to/user/db) to change the database port (e.g. `port = 5433`). /path/to/user/db) to change the database port (e.g. `port = 5433`).
(3) Start this database `pg_ctl -D /path/to/user/db start` (3) Start this database `pg_ctl -D /path/to/user/db start`
Make sure your settings.py matches the settings of the user database. For example, set the Make sure your settings.py matches the settings of the user database. For example, set the
same port number (`DATABASE_PORT=5433`). DATABASE_NAME or TEST_DATABSE_NAME must be set, same port number (`DATABASE_PORT=5433`). DATABASE_NAME or TEST_DATABSE_NAME must be set,
along with DATABASE_USER. along with DATABASE_USER.
In settings.py set TEST_RUNNER='django.contrib.gis.tests.run_tests'. In settings.py set TEST_RUNNER='django.contrib.gis.tests.run_tests'.
Finally, this assumes that the PostGIS SQL files (lwpostgis.sql and spatial_ref_sys.sql) Finally, this assumes that the PostGIS SQL files (lwpostgis.sql and spatial_ref_sys.sql)
are installed in /usr/local/share. If they are not, add `POSTGIS_SQL_PATH=/path/to/sql` are installed in /usr/local/share. If they are not, add `POSTGIS_SQL_PATH=/path/to/sql`
in your settings.py. in your settings.py.
The tests may be run by invoking `./manage.py test`. The tests may be run by invoking `./manage.py test`.
""" """