прибор 'custom_fixture' не найден при использовании pytest - PullRequest
0 голосов
/ 08 мая 2020
• 1000

И тестовый код, который дает ошибку:

def test_headers(slack_client):
    headers_match = {"Authorization": "Bearer " + slack_client.bearer_token,
                     "content-type": slack_client.content_type}
    assert slack_client.headers() == headers_match

Все это находится в том же test_api.py файле. Пользовательский класс Slack находится в другом месте, но я его импортирую. Есть подсказки, с чем я столкнулся и как это исправить?

1 Ответ

0 голосов
/ 08 мая 2020

Мне нужен кофе, наверное ...

Проблема заключалась в том, что имя моего прибора отличалось от имени параметра, которое я передавал своей тестовой функции, ie set_up_slack_client vs slack_client. Кажется, что pytest ищет приборы, названные точно так же, как параметр, а не только для переменных, объектов и т. Д. c в том же пространстве имен.

Работает этот код:

import os
import pytest
from api.slack import Slack #Slack is the custom class


@pytest.fixture(scope='module')
def slack_client():                                #THIS IS WHAT CHANGED
    print("---Creating default instance of Slack client class---")
    BOT_O_AUTH_TOKEN = os.getenv("BOT_O_AUTH_TOKEN")
    slack_client = Slack()
    yield slack_client

def test_headers(slack_client):
    headers_match = {"Authorization": "Bearer " + slack_client.bearer_token,
                     "content-type": slack_client.content_type}
    assert slack_client.headers() == headers_match
...