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