Ошибка атрибута при тестировании Flask с помощью прибора PyTest - PullRequest
0 голосов
/ 30 октября 2019

Может кто-нибудь объяснить, как я могу использовать приборы pytest в своих тестах?

Мне дали это conftest.py, где он определяет 3 прибора Pytest:

{...}

@pytest.fixture(scope='session', autouse=True)
def app(request):
    app = create_app({
        'TESTING': True
    })
    ctx = app.app_context()
    ctx.push()

    def teardown():
        ctx.pop()

    request.addfinalizer(teardown)
    return app

@pytest.fixture(scope='function')
def client(app, request):
    return app.test_client()

@pytest.fixture(scope='function')
def get(client):
    return humanize_werkzeug_client(client.get)

Я пытаюсьчтобы проверить мое приложение, используя вышеуказанные тестовые приборы. Исходя из моего недостаточного уровня, мне нужно использовать это приспособление app в моих пестестах. Как видно из этого блога , я пробовал что-то вроде этого:

def test_myflaskapp(app):
    response = app.get('/')
    assert response.status_code == 200

Но я получаю ошибку атрибута: AttributeError: 'Flask' object has no attribute 'get'. Этот ответ не имел для меня никакого смысла. Боюсь, я не уверен, применимо ли оно к моему делу.

Может кто-нибудь объяснить, как / что я делаю неправильно? Я пытаюсь выучить Flask / PyTest и не могу найти пример / руководство, объясняющее, как это работает.

1 Ответ

0 голосов
/ 30 октября 2019

Приспособление app возвращает экземпляр Flask, я думаю, вы хотите использовать метод .get в тестовом экземпляре клиента . Попробуйте изменить app на client в своем тесте.

Проверьте официальные документы по тестированию .

...