30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
import os
|
|
import unittest
|
|
from unittest.mock import patch
|
|
|
|
from PIL import Image
|
|
|
|
from tools.image_orientation import ensure_not_portrait, landscape_guard_requested
|
|
|
|
|
|
class ImageOrientationTests(unittest.TestCase):
|
|
def test_landscape_guard_requested_defaults_to_all_images(self):
|
|
self.assertTrue(landscape_guard_requested(size="1600x900"))
|
|
self.assertTrue(landscape_guard_requested(size="512x512"))
|
|
self.assertTrue(landscape_guard_requested(size=None))
|
|
self.assertTrue(landscape_guard_requested(aspect_ratio="16:9", enforce_landscape=False))
|
|
self.assertFalse(landscape_guard_requested(allow_portrait=True))
|
|
|
|
def test_portrait_detection_allows_slightly_tall_images(self):
|
|
ensure_not_portrait(Image.new("RGB", (1000, 1040)))
|
|
with self.assertRaises(ValueError):
|
|
ensure_not_portrait(Image.new("RGB", (1000, 1100)))
|
|
|
|
def test_portrait_tolerance_env_override(self):
|
|
with patch.dict(os.environ, {"VIMAX_IMAGE_PORTRAIT_RETRY_TOLERANCE": "1.20"}):
|
|
ensure_not_portrait(Image.new("RGB", (1000, 1100)))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|