Ошибка при написании тестов для flask

Я пытаюсь использовать библиотеку flask testing. Мой код выглядит следующим образом:

from flask_testing import TestCase

from main import MyView

from main import app


class TestMyPage(TestCase):

    def create_app(self):
        app.config['TESTING'] = True
        self.general_view = MyView('flask.db')
        self.general_view.associate_funcs(app)
        self.client = app.test_client()
        return app

    def test_index(self):
        response = self.client.get('/')
        self.assert_200(response)
        self.assert_template_used('index.html')

    def test_my_page(self):
        with self.client.session_transaction() as session:
            session['user_id'] = 766217
            session['password'] = 'snowflakes'
            response = self.client.get('/mypage')
            self.assertRedirects(response, f'/page/{session["user_id"]}')

Так или иначе, на втором тесте происходит остановка с ошибкой:

AssertionError: The setup method 'add_url_rule' can no longer be called on the application. It has already handled its first request, any changes will not be applied consistently. Make sure all imports, decorators, functions, etc. needed to set up the application are done before running it.

Я честно не понимаю почему это происходит, так как add_url_rule вызывается только через метод associate_funcs в create_app. Почему тогда первый тест работает нормально?


Ответы (0 шт):