voicemeeter-api-python/tests/test_errors.py

50 lines
1.4 KiB
Python

import re
import pytest
import voicemeeterlib
from tests import vm
class TestErrors:
__test__ = True
def test_it_tests_an_unknown_kind(self):
with pytest.raises(
voicemeeterlib.error.VMError,
match="Unknown Voicemeeter kind 'unknown_kind'",
):
voicemeeterlib.api('unknown_kind')
def test_it_tests_an_unknown_parameter(self):
with pytest.raises(
voicemeeterlib.error.CAPIError,
match='VBVMR_SetParameterFloat returned -3',
) as exc_info:
vm.set('unknown.parameter', 1)
e = exc_info.value
assert e.code == -3
assert e.fn_name == 'VBVMR_SetParameterFloat'
def test_it_tests_an_unknown_config_name(self):
EXPECTED_MSG = (
"No config with name 'unknown' is loaded into memory",
f'Known configs: {list(vm.configs.keys())}',
)
with pytest.raises(
voicemeeterlib.error.VMError, match=re.escape('\n'.join(EXPECTED_MSG))
):
vm.apply_config('unknown')
def test_it_tests_an_invalid_config_key(self):
CONFIG = {
'strip-0': {'A1': True, 'B1': True, 'gain': -6.0},
'bus-0': {'mute': True, 'eq': {'on': True}},
'unknown-0': {'state': True},
'vban-out-1': {'name': 'streamname'},
}
with pytest.raises(ValueError, match="invalid config key 'unknown-0'"):
vm.apply(CONFIG)