重写为多协议管理器: 6 协议, CLI + curses TUI, 用户级 systemd

This commit is contained in:
typist committed 2026-11-01 06:38:56 +08:00
1 parent c43ab4a16e
commit 237b958e41
71 files changed
+4599 -1171

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
import unittest
from sbp.tui.term import display_width, pad, truncate, wrap_display
class WidthTest(unittest.TestCase):
def test_ascii_width(self) -> None:
self.assertEqual(display_width("hello"), 5)
def test_cjk_width(self) -> None:
self.assertEqual(display_width("中文"), 4)
self.assertEqual(display_width("a中"), 3)
def test_truncate_ascii(self) -> None:
self.assertEqual(truncate("abcdef", 10), "abcdef")
self.assertEqual(truncate("abcdef", 4), "abc…")
def test_truncate_cjk(self) -> None:
self.assertEqual(truncate("中文字符", 5), "中文…")
def test_pad(self) -> None:
self.assertEqual(display_width(pad("中", 5)), 5)
def test_wrap_display_keeps_long_uri_visible(self) -> None:
uri = "vless://" + "a" * 200
lines = wrap_display(uri, 40)
self.assertTrue(all(display_width(line) <= 40 for line in lines))
self.assertEqual("".join(lines), uri)
def test_wrap_display_cjk(self) -> None:
lines = wrap_display("中文字符", 4)
self.assertEqual(lines, ["中文", "字符"])
if __name__ == "__main__":
unittest.main()