fix(tests): read static sources as UTF-8 in the static assertion tests (#6850)

On native Windows the default text encoding is the ANSI code page
(cp1252 on en/pt systems), so the module-level read_text() calls in
eight static tests fail at collection with UnicodeDecodeError on bytes
0x81/0x90 that appear in static/js/chat.js, chatRenderer.js, app.js,
index.html and src/visual_report.py. Pass encoding="utf-8" like the
other 700+ tests in the suite already do.

Found by running the suite natively on Windows 11 (Python 3.11).

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Alexandre Teixeira <general@alexandreteixeira.dev>
This commit is contained in:
indieindie7
2026-11-01 01:26:11 +00:00
committed by GitHub
co-authored by Claude Fable 5.1 Alexandre Teixeira
parent ef3467e8d4
commit 64b457dc0a
8 changed files with 14 additions and 14 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ import unittest
path = Path(__file__).resolve().parents[1] / "routes/chat_routes.py"
tree = ast.parse(path.read_text())
tree = ast.parse(path.read_text(encoding="utf-8"))
node = next(n for n in tree.body if isinstance(n, ast.ClassDef) and n.name == "_AgentRenderState")
namespace = {}
exec(compile(ast.Module(body=[node], type_ignores=[]), str(path), "exec"), namespace)
@@ -3,8 +3,8 @@ from tests.helpers.stylesheets import app_css
ROOT = Path(__file__).resolve().parents[1]
CHAT = (ROOT / "static/js/chat.js").read_text()
SESSIONS = (ROOT / "static/js/sessions.js").read_text()
CHAT = (ROOT / "static/js/chat.js").read_text(encoding="utf-8")
SESSIONS = (ROOT / "static/js/sessions.js").read_text(encoding="utf-8")
CSS = app_css()
+2 -2
View File
@@ -2,8 +2,8 @@ from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
CHAT = (ROOT / "static/js/chat.js").read_text()
RENDERER = (ROOT / "static/js/chatRenderer.js").read_text()
CHAT = (ROOT / "static/js/chat.js").read_text(encoding="utf-8")
RENDERER = (ROOT / "static/js/chatRenderer.js").read_text(encoding="utf-8")
def test_processing_indicator_shows_live_ttft_timer():
@@ -4,11 +4,11 @@ from tests.helpers.stylesheets import app_css
ROOT = Path(__file__).resolve().parents[1]
CHAT = (ROOT / "static/js/chat.js").read_text()
RENDERER = (ROOT / "static/js/chatRenderer.js").read_text()
CHAT = (ROOT / "static/js/chat.js").read_text(encoding="utf-8")
RENDERER = (ROOT / "static/js/chatRenderer.js").read_text(encoding="utf-8")
STYLE = app_css()
APP = (ROOT / "static/app.js").read_text()
INDEX = (ROOT / "static/index.html").read_text()
APP = (ROOT / "static/app.js").read_text(encoding="utf-8")
INDEX = (ROOT / "static/index.html").read_text(encoding="utf-8")
def test_live_interruption_controls_have_visible_resume_labels():
+1 -1
View File
@@ -2,7 +2,7 @@ from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
CHAT = (ROOT / "static/js/chat.js").read_text()
CHAT = (ROOT / "static/js/chat.js").read_text(encoding="utf-8")
def test_queued_stack_is_consumed_as_one_ordered_message():
+1 -1
View File
@@ -2,7 +2,7 @@ from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
CHAT = (ROOT / "static/js/chat.js").read_text()
CHAT = (ROOT / "static/js/chat.js").read_text(encoding="utf-8")
def _visibility_handler() -> str:
+1 -1
View File
@@ -5,7 +5,7 @@ from bs4 import BeautifulSoup
from src.visual_report import generate_visual_report
SOURCE = (Path(__file__).resolve().parents[1] / "src/visual_report.py").read_text()
SOURCE = (Path(__file__).resolve().parents[1] / "src/visual_report.py").read_text(encoding="utf-8")
def test_export_bookmark_is_anchored_and_expands_on_demand():
@@ -2,8 +2,8 @@ from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
RENDERER = (ROOT / "static/js/chatRenderer.js").read_text()
CHAT = (ROOT / "static/js/chat.js").read_text()
RENDERER = (ROOT / "static/js/chatRenderer.js").read_text(encoding="utf-8")
CHAT = (ROOT / "static/js/chat.js").read_text(encoding="utf-8")
def test_saved_web_search_tool_icon_has_no_action_target():