Skip to content

Commit 95c72b8

Browse files
author
Steve Canny
committed
img: add _App1Marker select to _MarkerFactory()
1 parent 73cbcba commit 95c72b8

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

docx/image/jpeg.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,11 +270,14 @@ def _MarkerFactory(marker_code, stream, offset):
270270
in *stream* having *marker_code*.
271271
"""
272272
if marker_code == JPEG_MARKER_CODE.APP0:
273-
return _App0Marker.from_stream(stream, marker_code, offset)
273+
marker_cls = _App0Marker
274+
elif marker_code == JPEG_MARKER_CODE.APP1:
275+
marker_cls = _App1Marker
274276
elif marker_code in JPEG_MARKER_CODE.SOF_MARKER_CODES:
275-
return _SofMarker.from_stream(stream, marker_code, offset)
277+
marker_cls = _SofMarker
276278
else:
277-
return _Marker.from_stream(stream, marker_code, offset)
279+
marker_cls = _Marker
280+
return marker_cls.from_stream(stream, marker_code, offset)
278281

279282

280283
class _Marker(object):

tests/image/test_jpeg.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -395,16 +395,19 @@ def it_constructs_the_appropriate_marker_object(self, call_fixture):
395395

396396
@pytest.fixture(params=[
397397
JPEG_MARKER_CODE.APP0,
398+
JPEG_MARKER_CODE.APP1,
398399
JPEG_MARKER_CODE.SOF0,
399400
JPEG_MARKER_CODE.SOF7,
400401
JPEG_MARKER_CODE.SOS,
401402
])
402403
def call_fixture(
403-
self, request, stream_, offset_, _App0Marker_, _SofMarker_,
404-
_Marker_):
404+
self, request, stream_, offset_, _App0Marker_, _App1Marker_,
405+
_SofMarker_, _Marker_):
405406
marker_code = request.param
406407
if marker_code == JPEG_MARKER_CODE.APP0:
407408
marker_cls_ = _App0Marker_
409+
elif marker_code == JPEG_MARKER_CODE.APP1:
410+
marker_cls_ = _App1Marker_
408411
elif marker_code in JPEG_MARKER_CODE.SOF_MARKER_CODES:
409412
marker_cls_ = _SofMarker_
410413
else:
@@ -415,6 +418,10 @@ def call_fixture(
415418
def _App0Marker_(self, request):
416419
return class_mock(request, 'docx.image.jpeg._App0Marker')
417420

421+
@pytest.fixture
422+
def _App1Marker_(self, request):
423+
return class_mock(request, 'docx.image.jpeg._App1Marker')
424+
418425
@pytest.fixture
419426
def _Marker_(self, request):
420427
return class_mock(request, 'docx.image.jpeg._Marker')

0 commit comments

Comments
 (0)