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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
import pytest
from _testutils import VirtualBusDevice, VirtualControlMode
import json
import sys
import liquidctl.cli
@pytest.fixture
def main(monkeypatch, capsys):
"""Return a function f(*args) to run main with `args` as `sys.argv`."""
def call_with_args(*args):
monkeypatch.setattr(sys, 'argv', list(args))
try:
liquidctl.cli.main()
except SystemExit as exit:
code = exit.code
else:
code = 0
out, err = capsys.readouterr()
return code, out, err
return call_with_args
def test_json_list(main):
code, out, _ = main('test', '--bus', 'virtual', 'list', '--json')
assert code == 0
got = json.loads(out)
exp = [
{
'description': 'Virtual Bus Device',
'vendor_id': 0x1234,
'product_id': 0xabcd,
'release_number': None,
'serial_number': None,
'bus': 'virtual',
'address': 'virtual_address',
'port': None,
'driver': 'VirtualBusDevice',
'experimental': False,
}
]
assert got == exp
def test_json_initialize(main):
code, out, _ = main('test', '--bus', 'virtual', 'initialize', '--json')
assert code == 0
got = json.loads(out)
exp = [
{
'bus': 'virtual',
'address': 'virtual_address',
'description': 'Virtual Bus Device',
'status': [
{ 'key': 'Firmware version', 'value': '3.14.16', 'unit': '' },
]
}
]
assert got == exp
def test_json_status(main):
code, out, _ = main('test', '--bus', 'virtual', 'status', '--json')
assert code == 0
got = json.loads(out)
exp = [
{
'bus': 'virtual',
'address': 'virtual_address',
'description': 'Virtual Bus Device',
'status': [
{ 'key': 'Temperature', 'value': 30.4, 'unit': '°C' },
{ 'key': 'Fan control mode', 'value': 'VirtualControlMode.QUIET', 'unit': '' },
{ 'key': 'Animation', 'value': None, 'unit': '' },
{ 'key': 'Uptime', 'value': 66192.0, 'unit': 's' },
{ 'key': 'Hardware mode', 'value': True, 'unit': '' },
]
}
]
assert got == exp
|