|
9 | 9 | import pytest |
10 | 10 |
|
11 | 11 | from docx.compat import BytesIO |
12 | | -from docx.image.helpers import StreamReader |
| 12 | +from docx.image.helpers import BIG_ENDIAN, LITTLE_ENDIAN, StreamReader |
13 | 13 | from docx.image.tiff import _IfdEntries, Tiff, _TiffParser |
14 | 14 |
|
15 | 15 | from ..unitutil import ( |
@@ -87,6 +87,12 @@ def it_can_parse_the_properties_from_a_tiff_stream( |
87 | 87 | _TiffParser__init_.assert_called_once_with(ifd_entries_) |
88 | 88 | assert isinstance(tiff_parser, _TiffParser) |
89 | 89 |
|
| 90 | + def it_makes_a_stream_reader_to_help_parse(self, mk_stream_rdr_fixture): |
| 91 | + stream, StreamReader_, endian, stream_rdr_ = mk_stream_rdr_fixture |
| 92 | + stream_rdr = _TiffParser._make_stream_reader(stream) |
| 93 | + StreamReader_.assert_called_once_with(stream, endian) |
| 94 | + assert stream_rdr is stream_rdr_ |
| 95 | + |
90 | 96 | # fixtures ------------------------------------------------------- |
91 | 97 |
|
92 | 98 | @pytest.fixture |
@@ -119,10 +125,25 @@ def _make_stream_reader_(self, request, stream_rdr_): |
119 | 125 | return_value=stream_rdr_ |
120 | 126 | ) |
121 | 127 |
|
| 128 | + @pytest.fixture(params=[ |
| 129 | + (b'MM\x00*', BIG_ENDIAN), |
| 130 | + (b'II*\x00', LITTLE_ENDIAN), |
| 131 | + ]) |
| 132 | + def mk_stream_rdr_fixture(self, request, StreamReader_, stream_rdr_): |
| 133 | + bytes_, endian = request.param |
| 134 | + stream = BytesIO(bytes_) |
| 135 | + return stream, StreamReader_, endian, stream_rdr_ |
| 136 | + |
122 | 137 | @pytest.fixture |
123 | 138 | def stream_(self, request): |
124 | 139 | return instance_mock(request, BytesIO) |
125 | 140 |
|
| 141 | + @pytest.fixture |
| 142 | + def StreamReader_(self, request, stream_rdr_): |
| 143 | + return class_mock( |
| 144 | + request, 'docx.image.tiff.StreamReader', return_value=stream_rdr_ |
| 145 | + ) |
| 146 | + |
126 | 147 | @pytest.fixture |
127 | 148 | def stream_rdr_(self, request, ifd0_offset_): |
128 | 149 | stream_rdr_ = instance_mock(request, StreamReader) |
|
0 commit comments