74 lines
2.5 KiB
Python
74 lines
2.5 KiB
Python
from __future__ import annotations
|
|
|
|
import tempfile
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
from twitter.emit_archive import missing_local_media, preserve_review_state
|
|
from twitter.media_manifest import new_original_item
|
|
from twitter.render import render_media, title_text
|
|
|
|
|
|
class EmitMediaTests(unittest.TestCase):
|
|
def test_render_media_uses_image_and_video_markup(self) -> None:
|
|
self.assertEqual(
|
|
render_media("https://pbs.twimg.com/media/A?format=png&name=orig"),
|
|
"",
|
|
)
|
|
self.assertEqual(
|
|
render_media("https://video.twimg.com/ext_tw_video/A.mp4"),
|
|
'<video controls src="https://video.twimg.com/ext_tw_video/A.mp4"></video>',
|
|
)
|
|
|
|
def test_refresh_preserves_draft_and_reviewed_tags(self) -> None:
|
|
old = (
|
|
"---\n"
|
|
"title: Old\n"
|
|
"draft: false\n"
|
|
"tags:\n"
|
|
" - archive\n"
|
|
" - twitter\n"
|
|
" - example\n"
|
|
" - vulkan\n"
|
|
"---\n\nOld body\n"
|
|
)
|
|
fresh = (
|
|
"---\n"
|
|
"title: Fresh\n"
|
|
"draft: true\n"
|
|
"tags:\n"
|
|
" - archive\n"
|
|
" - twitter\n"
|
|
" - example\n"
|
|
"---\n\nFresh body\n"
|
|
)
|
|
merged = preserve_review_state(old, fresh, mechanical_tags={"archive", "twitter", "example"})
|
|
self.assertIn("draft: false", merged)
|
|
self.assertIn(" - vulkan", merged)
|
|
self.assertIn("Fresh body", merged)
|
|
self.assertNotIn("Old body", merged)
|
|
|
|
def test_missing_local_media_is_reported(self) -> None:
|
|
with tempfile.TemporaryDirectory() as raw:
|
|
path = Path(raw) / "missing.png"
|
|
item = new_original_item(
|
|
post_id="100",
|
|
media_id="AAA",
|
|
handle="example",
|
|
origin_url="https://pbs.twimg.com/media/AAA?format=png&name=orig",
|
|
filename=path.name,
|
|
local_path=path,
|
|
now="2026-08-24T12:00:00Z",
|
|
)
|
|
self.assertEqual(missing_local_media([item]), ["100/AAA/orig"])
|
|
|
|
def test_title_text_is_shared_by_frontmatter_and_slug(self) -> None:
|
|
self.assertEqual(
|
|
title_text("Root title. Extra first-line detail"),
|
|
"Root title.",
|
|
)
|
|
self.assertEqual(title_text("One uninterrupted title"), "One uninterrupted title")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main() |