diff --git a/tests/test_errors.py b/tests/test_errors.py new file mode 100644 index 0000000..65fe3e5 --- /dev/null +++ b/tests/test_errors.py @@ -0,0 +1,37 @@ +import pytest + +import voicemeeterlib +from tests import data, vm + + +class TestErrors: + __test__ = True + + def test_it_tests_an_unknown_kind(self): + with pytest.raises( + voicemeeterlib.error.VMError, + match=f"Unknown Voicemeeter kind 'unknown_kind'", + ): + voicemeeterlib.api("unknown_kind") + + def test_it_tests_an_unknown_parameter(self): + with pytest.raises( + voicemeeterlib.error.CAPIError, + match=f"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_invalid_config(self): + EXPECTED_MSG = ( + f"No config with name 'unknown' is loaded into memory", + f"Known configs: {list(vm.configs.keys())}", + ) + with pytest.raises(voicemeeterlib.error.VMError) as exc_info: + vm.apply_config("unknown") + + e = exc_info.value + assert e.message == "\n".join(EXPECTED_MSG)