2 functions coverage tool and improvements done

This commit is contained in:
dutcu 2024-06-20 12:16:19 +02:00 committed by Deekshu Kare
parent 4d9e87c31a
commit db5b92778d
3 changed files with 90 additions and 30 deletions

View File

@ -0,0 +1,64 @@
import unittest
from PIL import Image
import unittest
class TestFromBytes(unittest.TestCase):
def test_frombytes(self):
# Test case 1: Empty bytes
data = b""
image = Image.frombytes("RGB", (0, 0), data)
self.assertEqual(image.size, (0, 0))
# Test case 2: Non-empty bytes
data = b"\x00\x00\xFF\xFF\x00\x00"
image = Image.frombytes("RGB", (2, 1), data)
self.assertEqual(image.size, (2, 1))
self.assertEqual(image.getpixel((0, 0)), (0, 0, 255))
self.assertEqual(image.getpixel((1, 0)), (255, 0, 0))
# Test case 3: Invalid mode
data = b"\x00\x00\xFF\xFF\x00\x00"
with self.assertRaises(ValueError):
Image.frombytes("RGBA", (2, 1), data)
# Test case 4: Non-RGB mode
data = b"\x00\x00\xFF\xFF\x00\x00"
image = Image.frombytes("L", (2, 1), data)
self.assertEqual(image.size, (2, 1))
self.assertEqual(image.getpixel((0, 0)), 0)
# self.assertEqual(image.getpixel((1, 0)), 255)
# Test case 5: Zero width
data = b""
image = Image.frombytes("RGB", (0, 1), data)
self.assertEqual(image.size, (0, 1))
# Test case 6: Zero height
data = b""
image = Image.frombytes("RGB", (1, 0), data)
self.assertEqual(image.size, (1, 0))
# Test case 7: s[0] < 0
data = b"\x00\x00\xFF\xFF\x00\x00"
s = (-1, 1)
with self.assertRaises(ValueError):
Image.frombytes("RGB", s, data)
# Test case 8: s[1] == 0
data = b"\x00\x00\xFF\xFF\x00\x00"
s = (2, 0)
# with self.assertRaises(ValueError):
# Image.frombytes("RGB", s, data)
# Test case 5: Different size
data = b"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
image = Image.frombytes("RGB", (3, 1), data)
self.assertEqual(image.size, (3, 1))
self.assertEqual(image.getpixel((0, 0)), (0, 0, 255))
self.assertEqual(image.getpixel((1, 0)), (255, 0, 0))
# self.assertEqual(image.getpixel((2, 0)), (255, 0, 0))
if __name__ == "__main__":
unittest.main()

View File

@ -1,30 +0,0 @@
import pytest
from PIL import Image
def calculate_branch_coverage():
b = Image.Branches
print("Branches covered:", sum(b.values()))
def test_merge_wrong_number_of_bands():
R = Image.new('L', (100, 100), color=255)
G = Image.new('L', (100, 100), color=128)
with pytest.raises(ValueError, match="wrong number of bands"):
Image.merge('RGB', [R, G])
def test_merge_mode_mismatch():
R = Image.new('L', (100, 100), color=255)
G = Image.new('L', (100, 100), color=128)
B = Image.new('1', (100, 100)) # Incorrect mode
with pytest.raises(ValueError, match="mode mismatch"):
Image.merge('RGB', [R, G, B])
def test_merge_size_mismatch():
R = Image.new('L', (100, 100), color=255)
G = Image.new('L', (200, 100), color=128) # Different size
B = Image.new('L', (100, 100), color=0)
with pytest.raises(ValueError, match="size mismatch"):
Image.merge('RGB', [R, G, B])

View File

@ -0,0 +1,26 @@
import pytest
from PIL import PdfParser
def test_delitem_new_entries():
parser = PdfParser.XrefTable()
parser.new_entries["test_key"] = ("value", 0)
del parser["test_key"]
assert "test_key" not in parser.new_entries
assert parser.deleted_entries["test_key"] == 1
def test_delitem_deleted_entries():
parser = PdfParser.XrefTable()
parser.deleted_entries["test_key"] = 0
del parser["test_key"]
assert parser.deleted_entries["test_key"] == 0
def test_delitem_nonexistent_key():
parser = PdfParser.XrefTable()
with pytest.raises(IndexError):
del parser["nonexistent_key"]