Тестирование

Для запуска тестирования необходимо создать тестовую базу данных, т.к. с нуля база не создаётся. Создаётся тестовая база по аналогии с основной, но есть некоторые отличия. Разворачиваем при запущенных контейнерах.

  1. Копируем файл базы данных проекта в корневой каталог контейнера:
sudo docker cp a.sql siriuso_postgres_1:/a.sql

a.sql - имя базы данных

  1. Разворачиваем тестовую базу:
sudo docker exec -it siriuso_postgres_1 psql -h 127.0.0.1 -U siriuso -d test_siriuso -f /a.sql
  1. Очистка тестовой базы (бывают ошибки при разворачивании, тогда необходимо очистить и потом выполнить п.2):
sudo docker exec -it siriuso_postgres_1 psql -h 127.0.0.1 -U siriuso -d test_siriuso

и в контейнере выполняем:

do $$ declare r record; begin for r in (select tablename from pg_tables where schemaname='public') loop EXECUTE 'DROP TABLE ' || r.tablename || ' CASCADE'; end loop; end $$;
  1. Запуск полного тестирования:
sudo docker exec -it siriuso_django_1 python3 manage.py test --keepdb

Флаг –keepdb не даёт удалять тестовую базу данных. Если не укажите, то по завершении теста тестовая база данных будет удалена.

  1. Запуск тестирование конкретной модели:
sudo docker exec -it siriuso_django_1 python3 manage.py test konferencoj --keepdb

konferencoj указана для примера, вместо konferencoj ставите свою модель