test_image.py 958 B

123456789101112131415161718192021222324252627282930313233343536
  1. import numpy as np
  2. import PIL
  3. import pytest
  4. from PIL.Image import Image as Img
  5. import reflex as rx
  6. from reflex.utils.serializers import serialize, serialize_image
  7. @pytest.fixture
  8. def pil_image() -> Img:
  9. """Get an image.
  10. Returns:
  11. A random PIL image.
  12. """
  13. imarray = np.random.rand(100, 100, 3) * 255
  14. return PIL.Image.fromarray(imarray.astype("uint8")).convert("RGBA") # pyright: ignore [reportAttributeAccessIssue]
  15. def test_serialize_image(pil_image: Img):
  16. """Test that serializing an image works.
  17. Args:
  18. pil_image: The image to serialize.
  19. """
  20. data = serialize(pil_image)
  21. assert isinstance(data, str)
  22. assert data == serialize_image(pil_image)
  23. assert data.startswith("data:image/png;base64,")
  24. def test_set_src_str():
  25. """Test that setting the src works."""
  26. image = rx.image(src="pic2.jpeg")
  27. assert str(image.src) == '"pic2.jpeg"' # pyright: ignore [reportAttributeAccessIssue]