Pillow/Tests/test_file_bufrstub.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

79 lines
1.7 KiB
Python
Raw Normal View History

import pytest
from PIL import BufrStubImagePlugin, Image
from .helper import hopper
TEST_FILE = "Tests/images/gfs.t06z.rassda.tm00.bufr_d"
2015-07-03 08:03:25 +03:00
def test_open():
# Act
with Image.open(TEST_FILE) as im:
# Assert
assert im.format == "BUFR"
# Dummy data from the stub
assert im.mode == "F"
assert im.size == (1, 1)
2015-07-03 09:22:56 +03:00
def test_invalid_file():
# Arrange
invalid_file = "Tests/images/flower.jpg"
2015-07-03 08:03:25 +03:00
# Act / Assert
with pytest.raises(SyntaxError):
BufrStubImagePlugin.BufrStubImageFile(invalid_file)
def test_load():
# Arrange
with Image.open(TEST_FILE) as im:
# Act / Assert: stub cannot load without an implemented handler
with pytest.raises(OSError):
im.load()
def test_save(tmp_path):
# Arrange
im = hopper()
tmpfile = str(tmp_path / "temp.bufr")
# Act / Assert: stub cannot save without an implemented handler
with pytest.raises(OSError):
im.save(tmpfile)
2022-02-19 06:29:03 +03:00
def test_handler(tmp_path):
class TestHandler:
opened = False
loaded = False
saved = False
def open(self, im):
self.opened = True
def load(self, im):
self.loaded = True
2023-03-11 14:39:11 +03:00
im.fp.close()
2022-02-19 06:29:03 +03:00
return Image.new("RGB", (1, 1))
def save(self, im, fp, filename):
self.saved = True
handler = TestHandler()
BufrStubImagePlugin.register_handler(handler)
with Image.open(TEST_FILE) as im:
assert handler.opened
assert not handler.loaded
im.load()
assert handler.loaded
temp_file = str(tmp_path / "temp.bufr")
im.save(temp_file)
assert handler.saved
BufrStubImagePlugin._handler = None