Testning av GeoDjango-appar¶
I den här dokumentationen finns några ytterligare anteckningar och inställningar för PostGIS-användare.
PostGIS¶
Inställningar¶
Observera
Inställningarna nedan har förnuftiga standardvärden och bör inte behöva ställas in manuellt.
POSTGIS_VERSION
¶
När GeoDjangos spatiala backend initieras på PostGIS måste den utföra en SQL-fråga för att bestämma versionen för att ta reda på vilka funktioner som är tillgängliga. Avancerade användare som vill undvika denna extra fråga kan ställa in versionen manuellt med hjälp av en 3-tupel av heltal som anger major-, minor- och mikroversionsnumren för PostGIS. För att till exempel konfigurera för PostGIS X.Y.Z skulle du använda:
POSTGIS_VERSION = (X, Y, Z)
Erhållande av tillräckliga privilegier¶
Beroende på din konfiguration beskriver detta avsnitt flera metoder för att konfigurera en databasanvändare med tillräckliga behörigheter för att köra tester för GeoDjango-applikationer på PostgreSQL. Om din spatial databasmall skapades som i instruktionerna, behöver din testdatabasanvändare bara ha möjlighet att skapa databaser. I andra konfigurationer kan det krävas att du använder en databas-superanvändare.
Skapa databasanvändare¶
Använd följande kommando för att skapa en databasanvändare med möjlighet att skapa databaser:
$ createuser --createdb -R -S <user_name>
Flaggorna -R -S
anger att vi inte vill att användaren ska ha möjlighet att skapa ytterligare användare (roller) respektive vara superanvändare.
Alternativt kan du ändra en befintlig användares roll från SQL-skalet (förutsatt att detta görs från ett befintligt superanvändarkonto):
postgres# ALTER ROLE <user_name> CREATEDB NOSUPERUSER NOCREATEROLE;
Skapa superanvändare för databasen¶
Detta kan t.ex. göras när användaren skapas:
$ createuser --superuser <user_name>
Eller så kan du ändra användarens roll från SQL-skalet (förutsatt att detta görs från ett befintligt superanvändarkonto):
postgres# ALTER ROLE <user_name> SUPERUSER;
Fönster¶
På Windows-plattformar kan du använda verktyget pgAdmin III för att lägga till superanvändarprivilegier för din databasanvändare.
Som standard innehåller PostGIS-installationsprogrammet på Windows en mall för en rumslig databas med namnet ”template_postgis”.
GeoDjango-test¶
För att GeoDjango-testerna ska köras när du kör Django-testsviten med runtests.py
måste alla databaser i inställningsfilen använda en av spatial databasbackends.
Exempel¶
Följande är ett exempel på en renodlad inställningsfil med spatiala backends som kan användas för att köra hela Djangos testsvit, inklusive de i 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"
Om du antar att inställningarna ovan finns i filen ”postgis.py” i samma katalog som ”runtests.py”, kommer alla Django- och GeoDjango-tester att utföras när kommandot körs:
$ ./runtests.py --settings=postgis
Om du bara vill köra GeoDjango-testsviten anger du gis_tests
:
$ ./runtests.py --settings=postgis gis_tests