Skip to content

Commit 6e39f7c

Browse files
committed
fix: Extension upper casing
1 parent 66f0fae commit 6e39f7c

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

src/c2pa/c2pa.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1258,7 +1258,8 @@ class Reader:
12581258
'stream_error': "Error cleaning up stream: {}",
12591259
'file_error': "Error cleaning up file: {}",
12601260
'reader_cleanup_error': "Error cleaning up reader: {}",
1261-
'encoding_error': "Invalid UTF-8 characters in input: {}"
1261+
'encoding_error': "Invalid UTF-8 characters in input: {}",
1262+
'closed_error': "Reader is closed"
12621263
}
12631264

12641265
@classmethod
@@ -1411,7 +1412,7 @@ def __init__(self,
14111412
# If stream is a string, treat it as a path and try to open it
14121413

14131414
# format_or_path is a format
1414-
if format_or_path not in Reader.get_supported_mime_types():
1415+
if format_or_path.lower() not in Reader.get_supported_mime_types():
14151416
raise C2paError.NotSupported(
14161417
f"Reader does not support {format_or_path}")
14171418

@@ -1468,7 +1469,7 @@ def __init__(self,
14681469
else:
14691470
# format_or_path is a format string
14701471
format_str = str(format_or_path)
1471-
if format_str not in Reader.get_supported_mime_types():
1472+
if format_str.lower() not in Reader.get_supported_mime_types():
14721473
raise C2paError.NotSupported(
14731474
f"Reader does not support {format_str}")
14741475

@@ -1528,8 +1529,10 @@ def _ensure_valid_state(self):
15281529
Raises:
15291530
C2paError: If the reader is closed or invalid
15301531
"""
1531-
if self._closed or not self._reader:
1532-
raise C2paError("Reader is closed")
1532+
if self._closed:
1533+
raise C2paError(Reader._ERROR_MESSAGES['closed_error'])
1534+
if not self._reader:
1535+
raise C2paError(Reader._ERROR_MESSAGES['closed_error'])
15331536

15341537
def _cleanup_resources(self):
15351538
"""Internal cleanup method that releases native resources.
@@ -2391,7 +2394,7 @@ def _sign_internal(
23912394
if not signer or not hasattr(signer, '_signer') or not signer._signer:
23922395
raise C2paError("Invalid or closed signer")
23932396

2394-
if format not in Builder.get_supported_mime_types():
2397+
if format.lower() not in Builder.get_supported_mime_types():
23952398
raise C2paError.NotSupported(
23962399
f"Builder does not support {format}")
23972400

tests/test_unit_tests.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,15 @@ def test_read_dng_from_stream(self):
150150
# Just run and verify there is no crash
151151
json.loads(reader.json())
152152

153+
def test_read_dng_upper_case_from_stream(self):
154+
test_path = os.path.join(self.data_dir, "C.dng")
155+
with open(test_path, "rb") as file:
156+
file_content = file.read()
157+
158+
with Reader("DNG", io.BytesIO(file_content)) as reader:
159+
# Just run and verify there is no crash
160+
json.loads(reader.json())
161+
153162
def test_read_dng_file_from_path(self):
154163
test_path = os.path.join(self.data_dir, "C.dng")
155164

0 commit comments

Comments
 (0)