mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-04-20 17:22:00 +03:00
deekshu coverage tool and duru second func improv
This commit is contained in:
parent
703b8cf6c3
commit
e31adc7e40
|
@ -4,6 +4,8 @@ import sys
|
|||
|
||||
from PIL import Image
|
||||
from PIL import PdfParser
|
||||
from PIL import ImageCms
|
||||
from PIL import McIdasImagePlugin
|
||||
|
||||
pytest_plugins = ["Tests.helper"]
|
||||
|
||||
|
@ -12,6 +14,8 @@ def calculate_coverage(test_name):
|
|||
all_branches = {
|
||||
"branches1": Image.branches,
|
||||
"branches2": PdfParser.XrefTable.branches,
|
||||
"branches3": ImageCms.ImageCmsProfile.branches,
|
||||
"branches4": McIdasImagePlugin.McIdasImageFile.branches,
|
||||
# Add more
|
||||
}
|
||||
|
||||
|
@ -45,6 +49,4 @@ def pytest_sessionfinish(session, exitstatus):
|
|||
global test_name
|
||||
|
||||
coverage = calculate_coverage(test_name)
|
||||
print("\nBRANCH COVERAGE for", test_name, ":", coverage, "%\n")
|
||||
|
||||
|
||||
print("\nBRANCH COVERAGE for", test_name, ":", coverage, "%\n")
|
|
@ -237,6 +237,17 @@ _FLAGS = {
|
|||
|
||||
|
||||
class ImageCmsProfile:
|
||||
branches = {
|
||||
"1": False,
|
||||
"2": False,
|
||||
"3": False,
|
||||
"4": False,
|
||||
"5": False,
|
||||
"6": False,
|
||||
"7": False,
|
||||
"8": False,
|
||||
}
|
||||
|
||||
def __init__(self, profile: str | SupportsRead[bytes] | core.CmsProfile) -> None:
|
||||
"""
|
||||
:param profile: Either a string representing a filename,
|
||||
|
@ -246,23 +257,32 @@ class ImageCmsProfile:
|
|||
"""
|
||||
|
||||
if isinstance(profile, str):
|
||||
ImageCmsProfile.branches["1"] = True
|
||||
if sys.platform == "win32":
|
||||
ImageCmsProfile.branches["2"] = True
|
||||
profile_bytes_path = profile.encode()
|
||||
try:
|
||||
ImageCmsProfile.branches["3"] = True
|
||||
profile_bytes_path.decode("ascii")
|
||||
except UnicodeDecodeError:
|
||||
ImageCmsProfile.branches["4"] = True
|
||||
with open(profile, "rb") as f:
|
||||
ImageCmsProfile.branches["5"] = True
|
||||
self._set(core.profile_frombytes(f.read()))
|
||||
return
|
||||
self._set(core.profile_open(profile), profile)
|
||||
elif hasattr(profile, "read"):
|
||||
ImageCmsProfile.branches["6"] = True
|
||||
self._set(core.profile_frombytes(profile.read()))
|
||||
elif isinstance(profile, core.CmsProfile):
|
||||
ImageCmsProfile.branches["7"] = True
|
||||
self._set(profile)
|
||||
else:
|
||||
ImageCmsProfile.branches["8"] = True
|
||||
msg = "Invalid type for Profile" # type: ignore[unreachable]
|
||||
raise TypeError(msg)
|
||||
|
||||
|
||||
def _set(self, profile: core.CmsProfile, filename: str | None = None) -> None:
|
||||
self.profile = profile
|
||||
self.filename = filename
|
||||
|
|
|
@ -31,6 +31,14 @@ def _accept(prefix: bytes) -> bool:
|
|||
|
||||
|
||||
class McIdasImageFile(ImageFile.ImageFile):
|
||||
branches = {
|
||||
"1": False,
|
||||
"2": False,
|
||||
"3": False,
|
||||
"4": False,
|
||||
"5": False,
|
||||
}
|
||||
|
||||
format = "MCIDAS"
|
||||
format_description = "McIdas area file"
|
||||
|
||||
|
@ -40,6 +48,7 @@ class McIdasImageFile(ImageFile.ImageFile):
|
|||
|
||||
s = self.fp.read(256)
|
||||
if not _accept(s) or len(s) != 256:
|
||||
McIdasImageFile.branches["1"] = True
|
||||
msg = "not an McIdas area file"
|
||||
raise SyntaxError(msg)
|
||||
|
||||
|
@ -48,16 +57,20 @@ class McIdasImageFile(ImageFile.ImageFile):
|
|||
|
||||
# get mode
|
||||
if w[11] == 1:
|
||||
McIdasImageFile.branches["2"] = True
|
||||
mode = rawmode = "L"
|
||||
elif w[11] == 2:
|
||||
McIdasImageFile.branches["3"] = True
|
||||
# FIXME: add memory map support
|
||||
mode = "I"
|
||||
rawmode = "I;16B"
|
||||
elif w[11] == 4:
|
||||
McIdasImageFile.branches["4"] = True
|
||||
# FIXME: add memory map support
|
||||
mode = "I"
|
||||
rawmode = "I;32B"
|
||||
else:
|
||||
McIdasImageFile.branches["5"] = True
|
||||
msg = "unsupported McIdas format"
|
||||
raise SyntaxError(msg)
|
||||
|
||||
|
@ -76,3 +89,4 @@ class McIdasImageFile(ImageFile.ImageFile):
|
|||
Image.register_open(McIdasImageFile.format, McIdasImageFile, _accept)
|
||||
|
||||
# no default extension
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user