Задать вопрос
@Lepilov

Как тестировать приложения Flask с помощью unittest?

Решил поразбиратся с написанием тестов для flask приложений. Нужен совет бывалых.
Вот такой простой тест, который должен проверять доступна ли главная страница.

import unittest
import os
from app import app

class BasicTestCase(unittest.TestCase):
    def setUp(self):
        self.app = app.test_client()

    def test_main_page(self):
        response = self.app.get('/', content_type='html/text')
        self.assertEqual(response.status_code, 200)


Почему я получаю OK даже если локально не запущен сервер. По идее мне этот тест нужен, например если на проде отвалился Nginx и висит 502 ошибка.
И второй вопрос по тестированию взаимодействия с БД. У меня postgresql, мне тестировать уже существующую базу, или каждый раз создавать новую и удалять ее после теста?
  • Вопрос задан
  • 1102 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@LODIII
Python/SQL developer
мне тестировать уже существующую базу

не всегда сможете привести в первоначальное состояние, насколько это критично.
Например автоинкрементные ключи итд.
Ответ написан
@kdvoryashin
На существующей базе тестировать никогда ничего не надо, это плохая практика.
Во время теста создается тестовая бд, setUp() метод как раз для этого.
Кажется в новых версиях flask перешел на pytest вместо unittest, но принцип один в общем-то.
Рекомендую подробнее почитать документацию (перевод), там очень хорошие примеры по вашему вопросу.

Что касается проверки доступна ли главная страница. Это немного не про юнит тестирование.. Когда вы пытаетесь проверить не отвалился ли сейчас nginx, это больше про мониторинг.

Тесты всегда должны быть изолированы от рабочей среды. Когда вы запускаете тест, он запускает отдельно ваше приложение, на время работы теста.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
26 дек. 2024, в 15:04
3000 руб./за проект
26 дек. 2024, в 14:50
2000 руб./за проект
26 дек. 2024, в 14:40
15000 руб./за проект