Spec-Zone.ru › Django 2.1

Тестирование приложений 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.1/ref/contrib/gis/testing/

Spec-Zone.ru

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