Files
anwar-pi-website/automation/anwarpy/test_cover.py
T

37 lines
1.3 KiB
Python

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()