Files
AstrBot/tests/test_local_shell_component.py
LIghtJUNction dcaaf6286a test: comprehensive test coverage and type fixes
- Add 100+ new test files covering provider sources, platform adapters,
  agent runners, star/plugin system, knowledge base, core utils,
  pipeline, computer tools, builtin commands, and dashboard routes
- Fix Python type errors in sqlite.py (col() wrappers for SQLModel),
  astr_agent_tool_exec, core_lifecycle, star context/manager
- Fix TypeScript strict mode errors across 30+ dashboard Vue files
- Add import smoke tests, auth roundtrip, startup tests
- Add compile-all check and CLI entry test for AUR compatibility
- Restore BotMessageAccumulator and helpers lost in merge
2026-04-29 06:29:56 +08:00

51 lines
1.5 KiB
Python
Raw Blame History

from __future__ import annotations
from astrbot.core.computer.booters import local as local_booter
from astrbot.core.computer.booters.local import _decode_bytes_with_fallback
def test_local_shell_component_decodes_utf8_output():
result = _decode_bytes_with_fallback("技能内容".encode())
assert result == "技能内容"
def test_local_shell_component_prefers_utf8_before_windows_locale(
monkeypatch,
):
monkeypatch.setattr(local_booter.os, "name", "nt", raising=False)
monkeypatch.setattr(
local_booter.locale,
"getpreferredencoding",
lambda _do_setlocale=False: "cp936",
)
result = _decode_bytes_with_fallback(
"技能内容".encode(),
preferred_encoding="utf-8",
)
assert result == "技能内容"
def test_local_shell_component_falls_back_to_gbk_on_windows(monkeypatch):
monkeypatch.setattr(local_booter.os, "name", "nt", raising=False)
monkeypatch.setattr(
local_booter.locale,
"getpreferredencoding",
lambda _do_setlocale=False: "cp1252",
)
result = _decode_bytes_with_fallback("微博热搜".encode("gbk"))
assert result == "微博热搜"
def test_local_shell_component_falls_back_to_utf8_replace(monkeypatch):
monkeypatch.setattr(local_booter.os, "name", "posix", raising=False)
monkeypatch.setattr(
local_booter.locale,
"getpreferredencoding",
lambda _do_setlocale=False: "utf-8",
)
result = _decode_bytes_with_fallback(b"\xffabc")
assert result == "<EFBFBD>abc"