Я не знаю, почему create_app вызывается в каждой тестовой функции - PullRequest
0 голосов
/ 04 марта 2019

Я пишу тестовый код с использованием flask_testing

Ниже приведен мой тестовый код

from app import create_app, db

class SampleTest(TestCase):
    def create_app(self):
        self.db_fd, self.db_path = tempflie.mkstemp()
        return create_app({'DATABASE': self.db_path})

    def setUp(self):
        db.create_all()

    def tearDown(self):
        db.session.remove()
        db.drop_all()
        os.close(self.db_fd)
        os.unlink(self.db_path)

    def test1(self):
        response = self.get('/test1/')

    def test2(self):
        response = self.get('/test2/')

Когда я отлаживаю тестовый код, я обнаружил, что create_app вызывается во всех тестовых функциях, включая test1,test.

как я могу вызвать функцию create_app только один раз?

1 Ответ

0 голосов
/ 04 марта 2019
def create_app(self):
    self.db_fd, self.db_path = tempflie.mkstemp()
    return create_app({'DATABASE': self.db_path})

Это сбивает с толку, и я подозреваю, что вы не намеревались импортировать create_app и иметь метод с именем create_app.

Также у вас есть @ pytest.fixture в импортированном create_app?

...