• 3.1
  • 3.2
  • 5.0
  • Версия документации: 6.1

Тестирование приложений GeoDjango

В эту документацию включены некоторые дополнительные примечания и настройки для пользователей ПостГИС.

ПостГИС

Настройки

Примечание

Приведенные ниже настройки имеют разумные значения по умолчанию и не требуют ручной настройки.

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 вы можете использовать утилиту 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
Back to Top