from __future__ import annotations from pathlib import Path from yt_shorts_downloader.session import validate_session_file def test_validate_session_file_accepts_valid_youtube_session(tmp_path: Path) -> None: session_file = tmp_path / "cookies.txt" session_file.write_text( "\n".join( [ "# Netscape HTTP Cookie File", ".youtube.com\tTRUE\t/\tFALSE\t9999999999\tSID\tvalue1", ".youtube.com\tTRUE\t/\tTRUE\t9999999999\tSAPISID\tvalue2", ".youtube.com\tTRUE\t/\tTRUE\t9999999999\tLOGIN_INFO\tvalue3", ] ), encoding="utf-8", ) validation = validate_session_file(session_file) assert validation.exists is True assert validation.structurally_valid is True assert validation.fresh is True assert validation.is_usable is True def test_validate_session_file_rejects_invalid_format(tmp_path: Path) -> None: session_file = tmp_path / "cookies.txt" session_file.write_text("broken\trow", encoding="utf-8") validation = validate_session_file(session_file) assert validation.exists is True assert validation.structurally_valid is False assert validation.is_usable is False