Тестирование приложений GeoDjango
В этой документации приведены дополнительные примечания и настройки для пользователей PostGIS.
PostGIS
Настройки
Примечание
Указанные ниже настройки имеют подходящие значения по умолчанию, поэтому их не нужно задавать вручную.
POSTGIS_VERSION
При инициализации пространственного модуля PostGIS в GeoDjango выполняется 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/6.0/ref/contrib/gis/testing/