重写为多协议管理器: 6 协议, CLI + curses TUI, 用户级 systemd
This commit is contained in:
1 parent
c43ab4a16e
commit
237b958e41
71 files changed
+4599
-1171
No files matched your search
@@ -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()
|
||||
Reference in new issue
Block a user