33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
"""Focused tests for host-side Relay session management commands."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
import unittest
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
from plugin import slash
|
|
|
|
|
|
class RelaySlashRevokeTests(unittest.TestCase):
|
|
def test_revoke_requires_token_prefix(self) -> None:
|
|
self.assertIn("at least 4", slash.relay_slash_handler("revoke abc"))
|
|
|
|
@patch("plugin.slash.urllib.request.urlopen")
|
|
@patch("plugin.slash._relay_port", return_value=8767)
|
|
def test_revoke_uses_loopback_delete(self, _port: MagicMock, urlopen: MagicMock) -> None:
|
|
response = MagicMock()
|
|
response.read.return_value = json.dumps({"ok": True}).encode("utf-8")
|
|
urlopen.return_value.__enter__.return_value = response
|
|
|
|
result = slash.relay_slash_handler("revoke abcdef12")
|
|
|
|
request = urlopen.call_args.args[0]
|
|
self.assertEqual(request.get_method(), "DELETE")
|
|
self.assertEqual(request.full_url, "http://127.0.0.1:8767/sessions/abcdef12")
|
|
self.assertEqual(result, "Revoked paired device `abcdef12`.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|