Files
2026-08-24 14:44:02 -04:00

44 lines
1.6 KiB
Python

from __future__ import annotations
import tempfile
import unittest
from pathlib import Path
from twitter.frozen import frozen_match, load_frozen_ids
from twitter.tests.helpers import write_json
class FrozenTests(unittest.TestCase):
def test_descendant_id_freezes_entire_thread(self) -> None:
with tempfile.TemporaryDirectory() as raw:
root = Path(raw)
frozen_file = root / "do_not_refetch.txt"
frozen_file.write_text("# comment\n200\n", encoding="utf-8")
asset_dir = root / "thread"
write_json(
asset_dir / "thread_data.json",
{
"root_post_id": "100",
"posts": [
{"post_id": "100"},
{"post_id": "200"},
],
},
)
write_json(asset_dir / "media.json", {"root_post_id": "100", "items": []})
self.assertEqual(load_frozen_ids(frozen_file), {"200"})
self.assertEqual(frozen_match(asset_dir, {"200"}), "200")
def test_unrelated_thread_is_writable(self) -> None:
with tempfile.TemporaryDirectory() as raw:
asset_dir = Path(raw) / "thread"
write_json(
asset_dir / "thread_data.json",
{"root_post_id": "100", "posts": [{"post_id": "100"}]},
)
write_json(asset_dir / "media.json", {"root_post_id": "100", "items": []})
self.assertIsNone(frozen_match(asset_dir, {"200"}))
if __name__ == "__main__":
unittest.main()