client: add set_self_mute and register_self

This commit is contained in:
Username
2026-02-28 14:04:17 +01:00
parent 2533e43391
commit 15fbf0040a
2 changed files with 57 additions and 0 deletions

View File

@@ -280,6 +280,19 @@ class MumbleClient:
else:
self._mumble.users.myself.undeafen()
def set_self_mute(self, mute: bool) -> None:
"""Toggle self-mute on the server."""
if self._mumble and self._connected:
if mute:
self._mumble.users.myself.mute()
else:
self._mumble.users.myself.unmute()
def register_self(self) -> None:
"""Register the current user on the server."""
if self._mumble and self._connected:
self._mumble.users.myself.register()
# -- pymumble callbacks (run on pymumble thread) -------------------------
def _register_callbacks(self) -> None:

View File

@@ -120,3 +120,47 @@ def test_disconnect_clears_connected():
client._mumble = MagicMock()
client.disconnect()
assert client.connected is False
def test_set_self_mute_calls_pymumble():
client = MumbleClient(host="localhost")
client._connected = True
myself = MagicMock()
users = MagicMock()
users.myself = myself
mumble = MagicMock()
mumble.users = users
client._mumble = mumble
client.set_self_mute(True)
myself.mute.assert_called_once()
myself.unmute.assert_not_called()
myself.reset_mock()
client.set_self_mute(False)
myself.unmute.assert_called_once()
myself.mute.assert_not_called()
def test_set_self_mute_noop_when_disconnected():
client = MumbleClient(host="localhost")
client.set_self_mute(True)
def test_register_self_calls_pymumble():
client = MumbleClient(host="localhost")
client._connected = True
myself = MagicMock()
users = MagicMock()
users.myself = myself
mumble = MagicMock()
mumble.users = users
client._mumble = mumble
client.register_self()
myself.register.assert_called_once()
def test_register_self_noop_when_disconnected():
client = MumbleClient(host="localhost")
client.register_self()