Spec-Zone.ru › Django 2.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/2.0/ref/contrib/gis/testing/

Spec-Zone.ru

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