Spec-Zone.ru › Django 3.1

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

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

PostGIS

Настройки

Примечание

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

POSTGIS_VERSION

Когда пространственный бэкенд GeoDjango инициализируется на PostGIS, он должен выполнить запрос SQL для определения версии, чтобы выяснить, какие функции доступны. Расширенные пользователи, желающие предотвратить этот дополнительный запрос, могут установить версию вручную, используя кортеж из 3 целых чисел, определяющих основные, второстепенные и микро версии 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/3.1/ref/contrib/gis/testing/

Spec-Zone.ru

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