Merge pull request #2441 from hugovk/test-bufrstub

Test BufrStubImagePlugin for correctness
This commit is contained in:
wiredfool 2017-03-06 18:53:13 +00:00 committed by GitHub
commit 1a8f88986d
3 changed files with 28 additions and 4 deletions

View File

@ -40,7 +40,7 @@ class BufrStubImageFile(ImageFile.StubImageFile):
offset = self.fp.tell()
if not _accept(self.fp.read(8)):
if not _accept(self.fp.read(4)):
raise SyntaxError("Not a BUFR file")
self.fp.seek(offset)

Binary file not shown.

View File

@ -1,21 +1,45 @@
from helper import unittest, PillowTestCase, hopper
from PIL import BufrStubImagePlugin
from PIL import BufrStubImagePlugin, Image
TEST_FILE = "Tests/images/gfs.t06z.rassda.tm00.bufr_d"
class TestFileBufrStub(PillowTestCase):
def test_open(self):
# Act
im = Image.open(TEST_FILE)
# Assert
self.assertEqual(im.format, "BUFR")
# Dummy data from the stub
self.assertEqual(im.mode, "F")
self.assertEqual(im.size, (1, 1))
def test_invalid_file(self):
# Arrange
invalid_file = "Tests/images/flower.jpg"
# Act / Assert
self.assertRaises(SyntaxError,
lambda:
BufrStubImagePlugin.BufrStubImageFile(invalid_file))
def test_save(self):
im = hopper()
def test_load(self):
# Arrange
im = Image.open(TEST_FILE)
# Act / Assert: stub cannot load without an implemented handler
self.assertRaises(IOError, im.load)
def test_save(self):
# Arrange
im = hopper()
tmpfile = self.tempfile("temp.bufr")
# Act / Assert: stub cannot save without an implemented handler
self.assertRaises(IOError, lambda: im.save(tmpfile))