client: add set_self_mute and register_self
This commit is contained in:
@@ -280,6 +280,19 @@ class MumbleClient:
|
|||||||
else:
|
else:
|
||||||
self._mumble.users.myself.undeafen()
|
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) -------------------------
|
# -- pymumble callbacks (run on pymumble thread) -------------------------
|
||||||
|
|
||||||
def _register_callbacks(self) -> None:
|
def _register_callbacks(self) -> None:
|
||||||
|
|||||||
@@ -120,3 +120,47 @@ def test_disconnect_clears_connected():
|
|||||||
client._mumble = MagicMock()
|
client._mumble = MagicMock()
|
||||||
client.disconnect()
|
client.disconnect()
|
||||||
assert client.connected is False
|
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()
|
||||||
|
|||||||
Reference in New Issue
Block a user