def it_can_get_the_id_of_a_style(self, style_, styles_prop_, styles_):
        styles_prop_.return_value = styles_
        styles_.get_style_id.return_value = "BodyCharacter"
        document_part = DocumentPart(None, None, None, None)

        style_id = document_part.get_style_id(style_, WD_STYLE_TYPE.CHARACTER)

        styles_.get_style_id.assert_called_once_with(style_, WD_STYLE_TYPE.CHARACTER)
        assert style_id == "BodyCharacter"
    def it_can_get_a_style_by_id(self, styles_prop_, styles_, style_):
        styles_prop_.return_value = styles_
        styles_.get_by_id.return_value = style_
        document_part = DocumentPart(None, None, None, None)

        style = document_part.get_style("BodyText", WD_STYLE_TYPE.PARAGRAPH)

        styles_.get_by_id.assert_called_once_with("BodyText", WD_STYLE_TYPE.PARAGRAPH)
        assert style is style_
    def it_can_add_a_header_part(self, package_, HeaderPart_, header_part_, relate_to_):
        HeaderPart_.new.return_value = header_part_
        relate_to_.return_value = "rId7"
        document_part = DocumentPart(None, None, None, package_)

        header_part, rId = document_part.add_header_part()

        HeaderPart_.new.assert_called_once_with(package_)
        relate_to_.assert_called_once_with(document_part, header_part_, RT.HEADER)
        assert header_part is header_part_
        assert rId == "rId7"
    def it_provides_access_to_a_footer_part_by_rId(
        self, related_parts_prop_, related_parts_, footer_part_
    ):
        related_parts_prop_.return_value = related_parts_
        related_parts_.__getitem__.return_value = footer_part_
        document_part = DocumentPart(None, None, None, None)

        footer_part = document_part.footer_part("rId9")

        related_parts_.__getitem__.assert_called_once_with("rId9")
        assert footer_part is footer_part_
    def it_can_add_a_footer_part(self, package_, FooterPart_, footer_part_, relate_to_):
        FooterPart_.new.return_value = footer_part_
        relate_to_.return_value = "rId12"
        document_part = DocumentPart(None, None, None, package_)

        footer_part, rId = document_part.add_footer_part()

        FooterPart_.new.assert_called_once_with(package_)
        relate_to_.assert_called_once_with(document_part, footer_part_, RT.FOOTER)
        assert footer_part is footer_part_
        assert rId == "rId12"
    def it_provides_access_to_a_header_part_by_rId(
        self, related_parts_prop_, related_parts_, header_part_
    ):
        related_parts_prop_.return_value = related_parts_
        related_parts_.__getitem__.return_value = header_part_
        document_part = DocumentPart(None, None, None, None)

        header_part = document_part.header_part("rId11")

        related_parts_.__getitem__.assert_called_once_with("rId11")
        assert header_part is header_part_
Example #7
0
    def it_can_iterate_the_story_parts(
        self, iter_parts_related_by_, header_part_, footer_part_
    ):
        iter_parts_related_by_.return_value = iter((header_part_, footer_part_))
        document_part = DocumentPart(None, None, None, None)

        story_parts = document_part.iter_story_parts()

        iter_parts_related_by_.assert_called_once_with(
            document_part,
            {RT.COMMENTS, RT.ENDNOTES, RT.FOOTER, RT.FOOTNOTES, RT.HEADER},
        )
        assert list(story_parts) == [document_part, header_part_, footer_part_]
Example #8
0
 def styles_part_create_fixture(
         self, package_, part_related_by_, StylesPart_, styles_part_,
         relate_to_):
     document_part = DocumentPart(None, None, None, package_)
     part_related_by_.side_effect = KeyError
     StylesPart_.default.return_value = styles_part_
     return document_part, StylesPart_, styles_part_
Example #9
0
 def document_body_fixture(self, request, _Body_):
     document_elm = (
         a_document().with_nsdecls().with_child(
             a_body())
     ).element
     body_elm = document_elm[0]
     document = DocumentPart(None, None, document_elm, None)
     return document, _Body_, body_elm
Example #10
0
 def inline_shapes_fixture(self, request, InlineShapes_):
     document_elm = (
         a_document().with_nsdecls().with_child(
             a_body())
     ).element
     body_elm = document_elm[0]
     document = DocumentPart(None, None, document_elm, None)
     return document, InlineShapes_, body_elm
Example #11
0
    def it_provides_access_to_the_package_bookmarks(self, Bookmarks_, bookmarks_):
        Bookmarks_.return_value = bookmarks_
        document_part = DocumentPart(None, None, None, None)

        bookmarks = document_part.bookmarks

        Bookmarks_.assert_called_once_with(document_part)
        assert bookmarks is bookmarks_
Example #12
0
 def get_or_add_image_fixture(
         self, request, package_, image_descriptor_, image_parts_,
         relate_to_, image_part_, rId_):
     package_.image_parts = image_parts_
     document = DocumentPart(None, None, None, package_)
     return (
         document, image_descriptor_, image_parts_, relate_to_,
         image_part_, rId_
     )
Example #13
0
    def hdrftr_fixture(self, request, header_part_, body_):
        header_part_.body = body_
        document_part = DocumentPart(None, None, None, None)

        get_related_part = method_mock(request, DocumentPart,
                                       'get_related_part')
        get_related_part.return_value = header_part_

        return document_part, get_related_part, header_part_
Example #14
0
    def get_image_fixture(self, package_, image_part_, image_, relate_to_):
        document_part = DocumentPart(None, None, None, package_)
        path, rId_ = 'foobar.png', 'rId42'

        package_.image_parts.get_or_add_image_part.return_value = image_part_
        relate_to_.return_value = rId_
        image_part_.image = image_

        return document_part, path, image_part_, rId_, image_
Example #15
0
 def next_id_fixture(self, request):
     existing_ids, expected_id = request.param
     document_elm = a_document().with_nsdecls().element
     for n in existing_ids:
         p = a_p().with_nsdecls().element
         p.set('id', str(n))
         document_elm.append(p)
     document = DocumentPart(None, None, document_elm, None)
     return document, expected_id
    def it_provides_access_to_its_styles_part_to_help(
        self, part_related_by_, styles_part_
    ):
        part_related_by_.return_value = styles_part_
        document_part = DocumentPart(None, None, None, None)

        styles_part = document_part._styles_part

        part_related_by_.assert_called_once_with(document_part, RT.STYLES)
        assert styles_part is styles_part_
    def it_provides_access_to_the_numbering_part(
        self, part_related_by_, numbering_part_
    ):
        part_related_by_.return_value = numbering_part_
        document_part = DocumentPart(None, None, None, None)

        numbering_part = document_part.numbering_part

        part_related_by_.assert_called_once_with(document_part, RT.NUMBERING)
        assert numbering_part is numbering_part_
Example #18
0
    def new_pic_fixture(self, image_, get_or_add_image_, next_id_prop_):
        document_part = DocumentPart(None, None, None, None)
        path, width, height, rId = 'foo/bar.png', 111, 222, 'rId42'
        expected_xml = snippet_text('inline')

        get_or_add_image_.return_value = rId, image_
        image_.scaled_dimensions.return_value = 444, 888
        image_.filename = 'bar.png'
        next_id_prop_.return_value = 24

        return document_part, path, width, height, image_, expected_xml
    def and_it_creates_a_numbering_part_if_not_present(
        self, part_related_by_, relate_to_, NumberingPart_, numbering_part_
    ):
        part_related_by_.side_effect = KeyError
        NumberingPart_.new.return_value = numbering_part_
        document_part = DocumentPart(None, None, None, None)

        numbering_part = document_part.numbering_part

        NumberingPart_.new.assert_called_once_with()
        relate_to_.assert_called_once_with(document_part, numbering_part_, RT.NUMBERING)
        assert numbering_part is numbering_part_
    def and_it_creates_a_default_styles_part_if_not_present(
        self, package_, part_related_by_, StylesPart_, styles_part_, relate_to_
    ):
        part_related_by_.side_effect = KeyError
        StylesPart_.default.return_value = styles_part_
        document_part = DocumentPart(None, None, None, package_)

        styles_part = document_part._styles_part

        StylesPart_.default.assert_called_once_with(package_)
        relate_to_.assert_called_once_with(document_part, styles_part_, RT.STYLES)
        assert styles_part is styles_part_
Example #21
0
 def it_can_be_constructed_by_opc_part_factory(self, parse_xml_, init):
     # mockery ----------------------
     partname, content_type, blob, document_elm, package = (Mock(
         name='partname'), Mock(name='content_type'), Mock(
             name='blob'), Mock(name='document_elm'), Mock(name='package'))
     parse_xml_.return_value = document_elm
     # exercise ---------------------
     doc = DocumentPart.load(partname, content_type, blob, package)
     # verify -----------------------
     parse_xml_.assert_called_once_with(blob)
     init.assert_called_once_with(partname, content_type, document_elm,
                                  package)
     assert isinstance(doc, DocumentPart)
Example #22
0
 def it_can_be_constructed_by_opc_part_factory(self, oxml_fromstring_, init):
     # mockery ----------------------
     partname, content_type, blob, document_elm, package = (
         Mock(name="partname"),
         Mock(name="content_type"),
         Mock(name="blob"),
         Mock(name="document_elm"),
         Mock(name="package"),
     )
     oxml_fromstring_.return_value = document_elm
     # exercise ---------------------
     doc = DocumentPart.load(partname, content_type, blob, package)
     # verify -----------------------
     oxml_fromstring_.assert_called_once_with(blob)
     init.assert_called_once_with(partname, content_type, document_elm, package)
     assert isinstance(doc, DocumentPart)
Example #23
0
 def it_can_be_constructed_by_opc_part_factory(self, parse_xml_, init):
     # mockery ----------------------
     partname, content_type, blob, document_elm, package = (
         Mock(name='partname'), Mock(name='content_type'),
         Mock(name='blob'), Mock(name='document_elm'),
         Mock(name='package')
     )
     parse_xml_.return_value = document_elm
     # exercise ---------------------
     doc = DocumentPart.load(partname, content_type, blob, package)
     # verify -----------------------
     parse_xml_.assert_called_once_with(blob)
     init.assert_called_once_with(
         partname, content_type, document_elm, package
     )
     assert isinstance(doc, DocumentPart)
Example #24
0
 def styles_part_get_fixture(self, part_related_by_, styles_part_):
     document_part = DocumentPart(None, None, None, None)
     part_related_by_.return_value = styles_part_
     return document_part, styles_part_
Example #25
0
 def settings_fixture(self, _settings_part_prop_, settings_part_,
                      settings_):
     document_part = DocumentPart(None, None, None, None)
     _settings_part_prop_.return_value = settings_part_
     settings_part_.settings = settings_
     return document_part, settings_
Example #26
0
 def styles_fixture(self, _styles_part_prop_, styles_part_, styles_):
     document_part = DocumentPart(None, None, None, None)
     _styles_part_prop_.return_value = styles_part_
     styles_part_.styles = styles_
     return document_part, styles_
Example #27
0
 def nmprt_get_fixture(self, part_related_by_, numbering_part_):
     document_part = DocumentPart(None, None, None, None)
     part_related_by_.return_value = numbering_part_
     return document_part, numbering_part_
Example #28
0
 def save_fixture(self, package_):
     document_part = DocumentPart(None, None, None, package_)
     file_ = 'foobar.docx'
     return document_part, file_
Example #29
0
 def nmprt_create_fixture(self, part_related_by_, relate_to_,
                          NumberingPart_, numbering_part_):
     document_part = DocumentPart(None, None, None, None)
     part_related_by_.side_effect = KeyError
     NumberingPart_.new.return_value = numbering_part_
     return document_part, NumberingPart_, numbering_part_
Example #30
0
    def it_can_drop_a_specified_header_part(self, drop_rel_):
        document_part = DocumentPart(None, None, None, None)

        document_part.drop_header_part("rId42")

        drop_rel_.assert_called_once_with(document_part, "rId42")
Example #31
0
 def core_props_fixture(self, package_, core_properties_):
     document_part = DocumentPart(None, None, None, package_)
     package_.core_properties = core_properties_
     return document_part, core_properties_
Example #32
0
 def get_style_fixture(self, styles_prop_, style_):
     document_part = DocumentPart(None, None, None, None)
     style_id, style_type = 'Foobar', 1
     styles_prop_.return_value.get_by_id.return_value = style_
     return document_part, style_id, style_type, style_
Example #33
0
 def get_style_id_fixture(self, styles_prop_):
     document_part = DocumentPart(None, None, None, None)
     style_or_name, style_type, style_id_ = 'Foo Bar', 1, 'FooBar'
     styles_prop_.return_value.get_style_id.return_value = style_id_
     return document_part, style_or_name, style_type, style_id_