|
8 | 8 |
|
9 | 9 | from docx.comments import Comments |
10 | 10 | from docx.opc.constants import CONTENT_TYPE as CT |
| 11 | +from docx.opc.constants import RELATIONSHIP_TYPE as RT |
11 | 12 | from docx.opc.packuri import PackURI |
| 13 | +from docx.opc.part import PartFactory |
12 | 14 | from docx.oxml.comments import CT_Comments |
13 | 15 | from docx.package import Package |
14 | 16 | from docx.parts.comments import CommentsPart |
15 | 17 |
|
16 | 18 | from ..unitutil.cxml import element |
17 | | -from ..unitutil.mock import FixtureRequest, Mock, class_mock, instance_mock |
| 19 | +from ..unitutil.mock import FixtureRequest, Mock, class_mock, instance_mock, method_mock |
18 | 20 |
|
19 | 21 |
|
20 | 22 | class DescribeCommentsPart: |
21 | 23 | """Unit test suite for `docx.parts.comments.CommentsPart` objects.""" |
22 | 24 |
|
| 25 | + def it_is_used_by_the_part_loader_to_construct_a_comments_part( |
| 26 | + self, package_: Mock, CommentsPart_load_: Mock, comments_part_: Mock |
| 27 | + ): |
| 28 | + partname = PackURI("/word/comments.xml") |
| 29 | + content_type = CT.WML_COMMENTS |
| 30 | + reltype = RT.COMMENTS |
| 31 | + blob = b"<w:comments/>" |
| 32 | + CommentsPart_load_.return_value = comments_part_ |
| 33 | + |
| 34 | + part = PartFactory(partname, content_type, reltype, blob, package_) |
| 35 | + |
| 36 | + CommentsPart_load_.assert_called_once_with(partname, content_type, blob, package_) |
| 37 | + assert part is comments_part_ |
| 38 | + |
23 | 39 | def it_provides_access_to_its_comments_collection( |
24 | 40 | self, Comments_: Mock, comments_: Mock, package_: Mock |
25 | 41 | ): |
@@ -58,6 +74,14 @@ def Comments_(self, request: FixtureRequest) -> Mock: |
58 | 74 | def comments_(self, request: FixtureRequest) -> Mock: |
59 | 75 | return instance_mock(request, Comments) |
60 | 76 |
|
| 77 | + @pytest.fixture |
| 78 | + def comments_part_(self, request: FixtureRequest) -> Mock: |
| 79 | + return instance_mock(request, CommentsPart) |
| 80 | + |
| 81 | + @pytest.fixture |
| 82 | + def CommentsPart_load_(self, request: FixtureRequest) -> Mock: |
| 83 | + return method_mock(request, CommentsPart, "load", autospec=False) |
| 84 | + |
61 | 85 | @pytest.fixture |
62 | 86 | def package_(self, request: FixtureRequest) -> Mock: |
63 | 87 | return instance_mock(request, Package) |
0 commit comments