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