Files

44 lines
1001 B
Python
Raw Permalink Normal View History

"""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"