From d6a0dec15b0ba848f2cca087189ea245449df180 Mon Sep 17 00:00:00 2001 From: Brian Crowell Date: Thu, 25 Oct 2012 07:57:39 -0500 Subject: [PATCH] py3k: Add TarIO test Not too convinced of the size fix. While it works against my file, I'm not sure someone would have accidentally been an index off and not noticed. --- Images/lena.tar | Bin 0 -> 51200 bytes PIL/TarIO.py | 4 ++-- Tests/test_file_tar.py | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 Images/lena.tar create mode 100644 Tests/test_file_tar.py diff --git a/Images/lena.tar b/Images/lena.tar new file mode 100644 index 0000000000000000000000000000000000000000..3afb1f542405347b093062d8e9e96cae6fce3be8 GIT binary patch literal 51200 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 0: name = name[:i] - size = int(s[124:136], 8) + size = int(s[124:135], 8) if file == name: break diff --git a/Tests/test_file_tar.py b/Tests/test_file_tar.py new file mode 100644 index 000000000..0f87ea2c0 --- /dev/null +++ b/Tests/test_file_tar.py @@ -0,0 +1,22 @@ +from tester import * + +from PIL import Image, TarIO + +# sample ppm stream +tarfile = "Images/lena.tar" + +def test_sanity(): + tar = TarIO.TarIO(tarfile, 'lena.png') + im = Image.open(tar) + im.load() + assert_equal(im.mode, "RGB") + assert_equal(im.size, (128, 128)) + assert_equal(im.format, "PNG") + + tar = TarIO.TarIO(tarfile, 'lena.jpg') + im = Image.open(tar) + im.load() + assert_equal(im.mode, "RGB") + assert_equal(im.size, (128, 128)) + assert_equal(im.format, "JPEG") +