# Подготовка к запуску тестов unit, integration, live_firewall

Перед запуском тестов, нужно подготовить базу данных, для этого запускаем:
```bash
DJANGO_SETTINGS_MODULE=console.settings.test python manage.py makemigrations
DJANGO_SETTINGS_MODULE=console.settings.test python manage.py migrate
```

# Запуск тестов unit

Для запуска тестов, нужно активировать виртуальное окружение и запустить:
```bash
pytest --disable-warnings -m unit
```

# Запуск тестов интеграционных

Для запуска интеграционных тестов, вызываем:
```bash
pytest --disable-warnings -m integration
```
При этом, интеграционные можно запускать либо в докере, либо на развернутой виртуалке, тк
они завязаны на внешние сервисы.

# Запуск тестов на живом AIF

Для запуска тестов на живом AIF, вызываем:
```bash
pytest --disable-warnings -m live_firewall
```
Перед каждым запуском теста проводится проверка доступности AIF, в случае если 
AIF не доступен тест завершается с состоянием False

После выполенения последнего теста "test_live_set_firewall_suricata" AIF уходит в
перезагрузку длительностью ~40-60 сек.

**Важно! Pipline запускает тесты последовательно, согласн очереди запросов от пользователей GitLab,
управляет этим отдельный раннер**



# Оценка покрытия тестов

Чтобы оценить общее покрытие кода тестами, нужно в docker запустить следующие команды:
```bash
coverage run -m pytest --disable-warnings
coverage report
```

Для HTML результата:
```bash
coverage html
```

# Отключение тестов при push'e и merge request'e

Тесты в пайплайне запускаются автоматически. Чтобы тесты при push'e и merge request'e не запускались,
необходимо указать в сообщении коммита ключ: #no_test