This commit is contained in:
root
2026-09-26 13:55:43 +08:00
commit 9dfc684869
40 changed files with 5632 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
from n_m3u8dl_py.utils import replace_vars, truncate_filename, valid_filename
def test_replace_vars_supports_dash_number_formats() -> None:
values = {"RepresentationID": "audio", "Number": 28324}
assert replace_vars("$RepresentationID$/$Number%08x$/$Number%05d$/$Number%08X$", values) == "audio/00006ea4/28324/00006EA4"
def test_replace_vars_keeps_unknown_values() -> None:
assert replace_vars("$Number%08x$", {}) == "$Number%08x$"
def test_filename_truncation_is_stable_and_unicode_safe() -> None:
value = "中" * 100
result = truncate_filename(value, 50)
assert len(result.encode("utf-8")) <= 50
assert "\ufffd" not in result
assert valid_filename("a:b*c") == "a_b_c"
def test_replace_vars_supports_upper_and_lower_hex() -> None:
assert replace_vars("$Number%08x$/$Number%08X$", {"Number": 22999}) == "000059d7/000059D7"