pytest: как использовать прибор для параметризации - PullRequest
0 голосов
/ 18 сентября 2018

в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...