Files
Nexus/tests/test_text_io.py
T
Your Name 4b5602a719 feat(files): fix editor freeze, EOL gates, server form and session UX
- FilesPage storeToRefs + remotePath coercion; Monaco preload; list action buttons
- text_io for UTF-8/LF; install/sync EOL; check_shell_eol + check_text_eol gates
- ServerFormDialog, hash login redirect, AppAuth keep-session; design docs and audits

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 00:42:55 +08:00

44 lines
1001 B
Python

"""Tests for server.utils.text_io (EOL / UTF-8)."""
from pathlib import Path
import pytest
from server.utils.text_io import (
detect_text_eol,
normalize_text_eol,
read_utf8_lf,
read_utf8_text,
write_utf8_lf,
)
def test_normalize_text_eol():
assert normalize_text_eol("a\r\nb\rc") == "a\nb\nc"
def test_detect_text_eol():
assert detect_text_eol("a\nb") == "LF"
assert detect_text_eol("a\r\nb") == "CRLF"
assert detect_text_eol("a\rb") == "CR"
def test_write_utf8_lf_no_cr(tmp_path: Path):
p = tmp_path / "t.txt"
write_utf8_lf(p, "line1\r\nline2\r")
raw = p.read_bytes()
assert b"\r" not in raw
assert raw == b"line1\nline2\n"
def test_read_utf8_strips_bom(tmp_path: Path):
p = tmp_path / "bom.env"
p.write_bytes(b"\xef\xbb\xbfKEY=value\n")
assert read_utf8_text(p) == "KEY=value\n"
def test_read_utf8_lf(tmp_path: Path):
p = tmp_path / "crlf.txt"
p.write_bytes(b"a\r\nb\r")
assert read_utf8_lf(p) == "a\nb\n"