Тестирование приложений GeoDjango ¶
В эту документацию включены некоторые дополнительные примечания и настройки для пользователей PostGIS .
PostGIS ¶
Настройки ¶
Примечание
Приведенные ниже настройки имеют разумные значения по умолчанию и не требуют ручной настройки.
POSTGIS_VERSION
¶
Когда пространственный бэкэнд GeoDjango инициализируется в PostGIS, он должен выполнить SQL-запрос, чтобы определить версию, чтобы выяснить, какие функции доступны. Опытные пользователи, желающие предотвратить этот дополнительный запрос, могут установить версию вручную, используя набор из трех целых чисел, определяющих номера основной, дополнительной и микроверсии для PostGIS. Например, для настройки PostGIS XYZ вы должны использовать:
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