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)