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