Files
2026-07-13 13:08:41 +08:00

33 lines
1.1 KiB
Python

from pathvalidate import sanitize_filename
from utils.filename_utils import safe_export_basename, MAX_EXPORT_BASENAME_BYTES
def test_safe_export_basename_short_name_unchanged():
assert safe_export_basename("Hello World") == "Hello World"
def test_safe_export_basename_empty_falls_back_to_presentation():
assert safe_export_basename("") == "presentation"
assert safe_export_basename(" ") == "presentation"
def test_safe_export_basename_long_ascii_truncated_with_hash():
long_name = "a" * 300
result = safe_export_basename(long_name)
assert len(result.encode("utf-8")) <= MAX_EXPORT_BASENAME_BYTES
assert "_" in result
def test_safe_filename_japanese_under_os_limit():
title = "2026下半期営業戦略 " + "あ" * 80
safe = safe_export_basename(sanitize_filename(title))
assert len(safe.encode("utf-8")) + len(".pptx") <= 255
def test_safe_export_basename_exactly_at_limit_unchanged():
name = "x" * MAX_EXPORT_BASENAME_BYTES
result = safe_export_basename(name)
assert result == name
assert len(result.encode("utf-8")) == MAX_EXPORT_BASENAME_BYTES