Pruebas de GeoDjango

En esta documentación se incluyen algunas notas adicionales y configuraciones para usuarios de PostGIS.

PostGIS

Configuración

Nota

Las configuraciones a continuación tienen valores por defecto sensatos, y no deberían requerir la configuración manual.

POSTGIS_VERSION

Cuando el backend espacial de GeoDjango inicia en PostGIS, tiene que realizar una consulta SQL para determinar la versión con el fin de averiguar qué características están disponibles. Los usuarios avanzados que deseen evitar esta consulta adicional pueden configurar manualmente la versión utilizando un tupla de tres enteros que especifican los números de versión mayor, menor y micro para PostGIS. Por ejemplo, para configurar para PostGIS X.Y.Z se utilizaría:

POSTGIS_VERSION = (X, Y, Z)

Obtener privilegios suficientes

Dependiendo de su configuración, esta sección describe varios métodos para configurar un usuario de base de datos con privilegios suficientes para ejecutar pruebas de aplicaciones GeoDjango en PostgreSQL. Si su plantilla de base de datos espacial fue creada como se indica en las instrucciones, entonces el usuario de prueba solo necesita tener la capacidad de crear bases de datos. En otras configuraciones, puede ser necesario utilizar un superusuario de base de datos.

Crear usuario de base de datos

Para hacer un usuario de base de datos con la capacidad de crear bases de datos, utilice el siguiente comando:

$ createuser --createdb -R -S <user_name>

Los -R -S flags indican que no queremos que el usuario tenga la capacidad de crear usuarios adicionales (roles) o ser superusuario, respectivamente.

Alternativamente, puedes alterar el rol de un usuario existente desde la consola SQL (asumiendo que esto se hace desde una cuenta de superusuario existente):

postgres# ALTER ROLE <user_name> CREATEDB NOSUPERUSER NOCREATEROLE;

Crear superusuario de base de datos

Esto puede hacerse en el momento en que se crea el usuario, por ejemplo:

$ createuser --superuser <user_name>

O puedes alterar el rol del usuario desde la consola SQL (asumiendo que esto se hace desde una cuenta de superusuario existente):

postgres# ALTER ROLE <user_name> SUPERUSER;

Windows

En plataformas Windows puedes utilizar la utilidad pgAdmin III para agregar privilegios de superusuario a tu usuario de base de datos.

Por defecto, el instalador PostGIS en Windows incluye una base de datos espacial de plantilla titulada template_postgis.

Pruebas GeoDjango

Para que se ejecuten las pruebas GeoDjango cuando se ejecuta el conjunto de pruebas de Django con runtests.py todos los bases de datos en el archivo de configuración deben estar utilizando uno de los backends de base de datos espaciales: <spatial-backends>.

Ejemplo

A continuación, se muestra un ejemplo de archivo de configuración básico con backends espaciales que se puede utilizar para ejecutar todo el conjunto de pruebas de Django, incluyendo las de django.contrib.gis:

DATABASES = {
    "default": {
        "ENGINE": "django.contrib.gis.db.backends.postgis",
        "NAME": "geodjango",
        "USER": "geodjango",
    },
    "other": {
        "ENGINE": "django.contrib.gis.db.backends.postgis",
        "NAME": "other",
        "USER": "geodjango",
    },
}

SECRET_KEY = "django_tests_secret_key"

Assumiendo que los ajustes anteriores estaban en un archivo postgis.py en el mismo directorio que runtests.py, entonces se realizarían todos los tests de Django y GeoDjango al ejecutar el comando:

$ ./runtests.py --settings=postgis

Para ejecutar solo la suite de pruebas de GeoDjango, especifique gis_tests:

$ ./runtests.py --settings=postgis gis_tests