-
Notifications
You must be signed in to change notification settings - Fork 125
/
conftest.py
30 lines (26 loc) · 943 Bytes
/
conftest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from yubikit.core import TRANSPORT
from ykman._cli.__main__ import cli
from ykman._cli.util import CliFail
from click.testing import CliRunner
from functools import partial
import pytest
import logging
logger = logging.getLogger(__name__)
@pytest.fixture()
def ykman_cli(capsys, device, info):
def _ykman_cli(*argv, **kwargs):
runner = CliRunner(mix_stderr=False)
with capsys.disabled():
logger.debug("CLI: ykman %r", argv)
result = runner.invoke(cli, argv, obj={}, **kwargs)
if result.exit_code != 0:
if isinstance(result.exception, CliFail):
raise SystemExit()
raise result.exception
return result
if device.transport == TRANSPORT.NFC:
return partial(_ykman_cli, "--reader", device.reader.name)
elif info.serial is not None:
return partial(_ykman_cli, "--device", info.serial)
else:
return _ykman_cli