Установка фляги test_client и postgresql для pytest - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь настроить мой клиент для тестирования видов колб с помощью базы данных postgresql.Коды выглядят так:

@pytest.fixture(scope='function')
def full_client(request):
    app = create_app(test_config=True)
    request.getfixturevalue('postgresql')
    engine = create_engine('postgresql+psycopg2://postgres:@127.0.0.1:5433/tests')
    session = sessionmaker(bind=engine)
    db.app = app
    db.create_all()
    client = app.test_client()
    return client, session()

Во время тестов сессия и клиент работают правильно, но, к сожалению, независимо друг от друга.Данные хранятся в РЕАЛЬНОЙ базе данных вместо «виртуальной».

def test_if_returns_200(full_client):
    response = full_client[0].get('http://0.0.0.0:4000/api/')

    # Line below gives empty list -> But the view should have created that
    print(full_client[1].query(Model).all())

    # Part below adds row the database
    article = Model(text='Some text')
    full_client[1].add(article)
    full_client[1].commit()

    # Line belows shows that the Model instance is added
    print(full_client[1].query(Model).all())

    assert response.status_code == 200

Если представление возвращает 200, это просто означает, что данные модели сохранены в базе данных.Когда я пытаюсь проверить его вручную, все в порядке.

Есть предложения?

Заранее спасибо, ребята!

...