39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
from unittest import mock
|
|
|
|
import dsh_web_server
|
|
|
|
|
|
class DshWebServerTest(unittest.TestCase):
|
|
def test_parse_ready_url(self):
|
|
self.assertEqual(
|
|
dsh_web_server.parse_ready_url("dsh web: http://127.0.0.1:3080"),
|
|
"http://127.0.0.1:3080",
|
|
)
|
|
self.assertEqual(
|
|
dsh_web_server.parse_ready_url("boot\ndsh web: http://127.0.0.1:18765 (LAN: none)\n"),
|
|
"http://127.0.0.1:18765",
|
|
)
|
|
self.assertEqual(dsh_web_server.parse_ready_url("still starting"), "")
|
|
|
|
def test_launch_command_uses_official_package(self):
|
|
with mock.patch.object(dsh_web_server, "_which", return_value=r"C:\nodejs\npx.cmd"):
|
|
args = dsh_web_server.launch_command(18765)
|
|
self.assertIn("@deepseek-ai/dsh", args)
|
|
self.assertIn("web", args)
|
|
self.assertIn("18765", args)
|
|
self.assertIn("127.0.0.1", args)
|
|
|
|
def test_launch_command_without_node_explains_install(self):
|
|
with mock.patch.object(dsh_web_server, "_which", return_value=""):
|
|
with self.assertRaises(FileNotFoundError) as ctx:
|
|
dsh_web_server.launch_command()
|
|
self.assertIn("Node", str(ctx.exception))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|