Spec-Zone.ru › Django 4.0

Тестирование приложений GeoDjango

В данном документе содержатся дополнительные заметки и настройки для пользователей PostGIS.

PostGIS

Настройки

Примечание

Нижеследующие настройки имеют разумные значения по умолчанию и не должны требовать ручного изменения.

POSTGIS_VERSION

При инициализации пространственного бэкенда GeoDjango на PostGIS необходимо выполнить запрос SQL для определения версии, чтобы выяснить, какие функции доступны. Продвинутые пользователи, желающие предотвратить этот дополнительный запрос, могут установить версию вручную, используя тройку целых чисел, определяющих основные, второстепенные и микро версии PostGIS. Например, для настройки для PostGIS X.Y.Z вы бы использовали:

POSTGIS_VERSION = (X, Y, Z)

Получение достаточных привилегий

В зависимости от вашей конфигурации, в этом разделе описаны несколько способов настройки пользователя базы данных с достаточными привилегиями для выполнения тестов приложений GeoDjango в PostgreSQL. Если ваша шаблон пространственной базы данных был создан в соответствии с инструкциями, то пользователю тестовой базы данных необходимо только иметь возможность создавать базы данных. В других конфигурациях вам может потребоваться использовать суперпользователя базы данных.

Создать пользователя базы данных

Для создания пользователя базы данных с возможностью создания баз данных используйте следующую команду:

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

Флаги -R -S указывают, что мы не хотим, чтобы пользователь имел возможность создавать дополнительных пользователей (ролей) или быть суперпользователем, соответственно.

В качестве альтернативы, вы можете изменить роль существующего пользователя из SQL-оболочки (предполагая, что это выполняется от имени существующего суперпользователя):

postgres# ALTER ROLE <user_name> CREATEDB NOSUPERUSER NOCREATEROLE;

Создать суперпользователя базы данных

Это можно сделать в момент создания пользователя, например:

$ createuser --superuser <user_name>

Или вы можете изменить роль пользователя из SQL-оболочки (предполагая, что это выполняется от имени существующего суперпользователя):

postgres# ALTER ROLE <user_name> SUPERUSER;

Windows

На платформах Windows вы можете использовать утилиту pgAdmin III для добавления привилегий суперпользователя к вашему пользователю базы данных.

По умолчанию, установщик PostGIS на Windows включает шаблон пространственной базы данных под названием template_postgis.

Тесты GeoDjango

Чтобы тесты GeoDjango выполнялись при выполнении набора тестов Django с runtests.py все базы данных в файле настроек должны использовать один из пространственных бэкэндов баз данных.

Пример

Ниже приведен пример файла настроек без лишних деталей с пространственными бэкендами, которые можно использовать для запуска всего набора тестов Django, включая те, что в 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'

Предполагая, что приведенные выше настройки находятся в файле postgis.py в той же директории, что и runtests.py, тогда все тесты Django и GeoDjango будут выполняться при выполнении команды:

$ ./runtests.py --settings=postgis

Чтобы запустить только набор тестов GeoDjango, укажите gis_tests:

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

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/4.0/ref/contrib/gis/testing/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API