Я знаю, что приспособления могут использовать другие приспособления, но может ли крюк использовать приспособление? Я много искал в сети, но не смог получить никакой помощи. Может кто-нибудь указать, если я здесь делаю ошибку?
#conftest.py
@pytest.fixture()
def json_loader(request):
"""Loads the data from given JSON file"""
def _loader(filename):
import json
with open(filename, 'r') as f:
data = json.load(f)
return data
return _loader
def pytest_runtest_setup(item,json_loader): #hook fails to use json_loader
data = json_loader("some_file.json")
print(data)
#do something useful here with data
При запуске я получаю следующую ошибку.
pluggy.manager.PluginValidationError: Плагин 'C: \ some_path \ conftest.py' для хука 'pytest_runtest_setup'
простое определение: pytest_runtest_setup (item, json_loader)
Аргумент (ы) {'json_loader'} объявлен в hookimpl, но не может быть найден в hookspec
Даже если я не передаю json_loader в качестве аргумента функции pytest_runtest_setup (), я получаю сообщение об ошибке, в котором говорится, что «Fixture« json_loader »вызывается напрямую. Фиксации не должны вызываться напрямую»