в conftest.py
определен прибор, который возвращает список:
@pytest.fixture(scope="session")
def targets_to_try():
with open(
"{}/xxx/cicd/xxx/manifest.yaml".format(os.environ["APPFOLDER"]), "rt"
) as f:
manifest = yaml.safe_load(f.read())
schema = Manifest.ManifestSchema()
appobj = schema.load(manifest)
return appobj.data["targets_to_try"]
В тестовом файле test_interfaces_cfg.py
Я хотел бы использовать вышеуказанный прибор для параметризации тестовой функции
import pytest
@pytest.mark.parametrize("target", targets_to_try)
def test_interfaces_cfg(manifest, target):
pass
Это вызывает следующую ошибку:
E NameError: name 'targets_to_try' is not defined
Не могли бы вы посоветовать, как добиться желаемого поведения?
РЕДАКТИРОВАТЬ: , если targets_to_try()
не является осветителем в conftest.py
, тогда я получаю следующую ошибку:
@pytest.mark.parametrize("target", targets_to_try())
E NameError: name 'targets_to_try' is not defined
РЕДАКТИРОВАТЬ: макет каталога выглядит следующим образом:
$ tree
.
|-- attributes
| `-- __init__.py
|-- bgp
| `-- __init__.py
|-- Blueprint.py
|-- communities
| `-- __init__.py
|-- conftest.py
|-- customize
| `-- __init__.py
|-- Head.py
|-- interfaces
| |-- __init__.py
| `-- test_interfaces_configlet.py
|-- InterfacesIx.py
|-- InterfacesLacp.py
|-- manifest
| |-- __init__.py
| `-- test_schema.py
|-- Manifest.py
|-- NeighborIx.py
|-- policies
| `-- __init__.py
|-- prefixes
| `-- __init__.py
|-- pytest.ini
|-- Stack.py
`-- Tail.py