feat: add live publisher adapters and generated covers
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import hashlib
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from PIL import Image
|
||||
|
||||
from cover import generate_cover
|
||||
|
||||
|
||||
class CoverTests(unittest.TestCase):
|
||||
def test_generates_deterministic_1200x630_jpeg_under_5mb(self):
|
||||
output_dir = Path(tempfile.mkdtemp())
|
||||
first = generate_cover("arabic-ai-guide", "أدوات", output_dir)
|
||||
first_hash = hashlib.sha256(first["path"].read_bytes()).hexdigest()
|
||||
second = generate_cover("arabic-ai-guide", "أدوات", output_dir)
|
||||
second_hash = hashlib.sha256(second["path"].read_bytes()).hexdigest()
|
||||
|
||||
self.assertEqual(first_hash, second_hash)
|
||||
self.assertEqual(first["coverImage"]["filename"], "arabic-ai-guide.jpg")
|
||||
self.assertLessEqual(first["path"].stat().st_size, 5 * 1024 * 1024)
|
||||
with Image.open(first["path"]) as image:
|
||||
self.assertEqual(image.size, (1200, 630))
|
||||
self.assertEqual(image.format, "JPEG")
|
||||
self.assertEqual(image.mode, "RGB")
|
||||
|
||||
def test_rejects_invalid_slug_or_category(self):
|
||||
output_dir = Path(tempfile.mkdtemp())
|
||||
with self.assertRaises(ValueError):
|
||||
generate_cover("عنوان عربي", "أدوات", output_dir)
|
||||
with self.assertRaises(ValueError):
|
||||
generate_cover("valid-slug", "عام", output_dir)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user