mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 01:47:47 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from __future__ import annotations
 | 
						|
 | 
						|
from pathlib import Path
 | 
						|
 | 
						|
import pytest
 | 
						|
 | 
						|
from PIL import Image, QoiImagePlugin
 | 
						|
 | 
						|
from .helper import assert_image_equal_tofile, hopper
 | 
						|
 | 
						|
 | 
						|
def test_sanity() -> None:
 | 
						|
    with Image.open("Tests/images/hopper.qoi") as im:
 | 
						|
        assert im.mode == "RGB"
 | 
						|
        assert im.size == (128, 128)
 | 
						|
        assert im.format == "QOI"
 | 
						|
 | 
						|
        assert_image_equal_tofile(im, "Tests/images/hopper.png")
 | 
						|
 | 
						|
    with Image.open("Tests/images/pil123rgba.qoi") as im:
 | 
						|
        assert im.mode == "RGBA"
 | 
						|
        assert im.size == (162, 150)
 | 
						|
        assert im.format == "QOI"
 | 
						|
 | 
						|
        assert_image_equal_tofile(im, "Tests/images/pil123rgba.png")
 | 
						|
 | 
						|
 | 
						|
def test_invalid_file() -> None:
 | 
						|
    invalid_file = "Tests/images/flower.jpg"
 | 
						|
 | 
						|
    with pytest.raises(SyntaxError):
 | 
						|
        QoiImagePlugin.QoiImageFile(invalid_file)
 | 
						|
 | 
						|
 | 
						|
def test_op_index() -> None:
 | 
						|
    # QOI_OP_INDEX as the first chunk
 | 
						|
    with Image.open("Tests/images/op_index.qoi") as im:
 | 
						|
        assert im.getpixel((0, 0)) == (0, 0, 0, 0)
 | 
						|
 | 
						|
 | 
						|
def test_save(tmp_path: Path) -> None:
 | 
						|
    f = tmp_path / "temp.qoi"
 | 
						|
 | 
						|
    im = hopper()
 | 
						|
    im.save(f, colorspace="sRGB")
 | 
						|
 | 
						|
    assert_image_equal_tofile(im, f)
 | 
						|
 | 
						|
    for path in ("Tests/images/default_font.png", "Tests/images/pil123rgba.png"):
 | 
						|
        with Image.open(path) as im:
 | 
						|
            im.save(f)
 | 
						|
 | 
						|
            assert_image_equal_tofile(im, f)
 | 
						|
 | 
						|
    im = hopper("P")
 | 
						|
    with pytest.raises(ValueError, match="Unsupported QOI image mode"):
 | 
						|
        im.save(f)
 |