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