Skip to content

Add tests

Add tests #13

Workflow file for this run

name: pytest
on:
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop
env:
DEBIAN_FRONTEND: noninteractive
jobs:
build:
runs-on: ubuntu-20.04
strategy:
matrix:
os: [ubuntu-20.04]
tests-env: ['tests', 'tests_nds']
include:
- os: ubuntu-20.04
python-version: 3.8 # default python version in 20.04
name: ${{ matrix.name }}
services:
postgres:
image: postgis/postgis:10-2.5
env:
POSTGRES_DB: geotrekdb
POSTGRES_PASSWORD: geotrekpwd
POSTGRES_USER: geotrekuser
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Add postgis_raster database extension
if: ${{ matrix.postgis-version >= 3 }}
run: |
psql -h localhost -U geotrekuser -d geotrekdb -tc 'CREATE EXTENSION "postgis_raster";'
env:
PGPASSWORD: geotrekpwd
- name: Add database extensions
run: |
psql -h localhost -U geotrekuser -d geotrekdb -tc 'CREATE EXTENSION "hstore";'
psql -h localhost -U geotrekuser -d geotrekdb -tc 'CREATE EXTENSION "uuid-ossp";'
psql -h localhost -U geotrekuser -d geotrekdb -tc 'CREATE EXTENSION "pg_trgm";'
psql -h localhost -U geotrekuser -d geotrekdb -tc 'CREATE EXTENSION "unaccent";'
env:
PGPASSWORD: geotrekpwd
- uses: actions/checkout@v2
with:
submodules: true
- name: Install Geotrek
run: |
echo "deb [arch=amd64] https://packages.geotrek.fr/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/geotrek.list
wget -O- "https://packages.geotrek.fr/geotrek.gpg.key" | sudo apt-key add -
sudo apt update
sudo apt install debconf-utils
cat << EOF | sudo debconf-set-selections
geotrek-admin geotrek-admin/POSTGRES_PASSWORD password geotrekpwd
geotrek-admin geotrek-admin/SERVER_NAME string localhost
geotrek-admin geotrek-admin/SRID string 2154
geotrek-admin geotrek-admin/POSTGRES_HOST string localhost
geotrek-admin geotrek-admin/TIMEOUT string 300
geotrek-admin geotrek-admin/MANAGE_DB boolean false
geotrek-admin geotrek-admin/LANGUAGES string fr en
geotrek-admin geotrek-admin/POSTGRES_USER string geotrekuser
geotrek-admin geotrek-admin/POSTGRES_DB string geotrekdb
geotrek-admin geotrek-admin/POSTGRES_PORT string 5432
geotrek-admin geotrek-admin/DEFAULT_STRUCTURE string TEST
geotrek-admin geotrek-admin/RANDO_SERVER_NAME string *
geotrek-admin geotrek-admin/TIME_ZONE string Etc/GMT-1
geotrek-admin geotrek-admin/WORKERS string 4
EOF
sudo apt-get --quiet --yes install geotrek-admin
- name: Install database
run: |
psql -h localhost -d geotrekdb -U geotrekuser --set ON_ERROR_STOP=on -f create_db_structure.sql
working-directory: ./db
env:
PGPASSWORD: geotrekpwd
VERBOSITY: verbose
- name: Install backend dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
working-directory: ./backend
- name: Install backend
run: |
cp -n config/config.py.sample config/config.py
working-directory: ./backend
- name: Run pytests
run: |
pytest -v --cov --cov-report xml
env:
GEONATURE_CONFIG_FILE: config/conftest.py
working-directory: ./backend