Skip to content

Commit 6c9d5de

Browse files
author
Steve Canny
committed
doc: add DocumentPart.save()
1 parent 60e5b53 commit 6c9d5de

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

docx/parts/document.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def save(self, path_or_stream):
118118
Save this document to *path_or_stream*, which can be either a path to
119119
a filesystem location (a string) or a file-like object.
120120
"""
121-
raise NotImplementedError
121+
self.package.save(path_or_stream)
122122

123123
@lazyproperty
124124
def sections(self):

tests/parts/test_document.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@
3535

3636
class DescribeDocumentPart(object):
3737

38+
def it_can_save_the_package_to_a_file(self, save_fixture):
39+
document, file_ = save_fixture
40+
document.save(file_)
41+
document._package.save.assert_called_once_with(file_)
42+
3843
def it_has_a_body(self, body_fixture):
3944
document_part, _Body_, body_elm = body_fixture
4045
_body = document_part.body
@@ -206,6 +211,12 @@ def nmprt_get_fixture(self, part_related_by_, numbering_part_):
206211
part_related_by_.return_value = numbering_part_
207212
return document_part, numbering_part_
208213

214+
@pytest.fixture
215+
def save_fixture(self, package_):
216+
document_part = DocumentPart(None, None, None, package_)
217+
file_ = 'foobar.docx'
218+
return document_part, file_
219+
209220
@pytest.fixture
210221
def sections_fixture(self, Sections_):
211222
document_elm = a_document().with_nsdecls().element

0 commit comments

Comments
 (0)