# Django 5.2.8 documentation

# 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