Exemplo n.º 1
0
    def it_raises_on_slide_id_not_found(self, slide_part_, related_part_):
        prs_elm = element(
            "p:presentation/p:sldIdLst/(p:sldId{r:id=a,id=256},p:sldId{r:id="
            "b,id=257},p:sldId{r:id=c,id=258})")
        related_part_.return_value = "not the slide you're looking for"
        prs_part = PresentationPart(None, None, None, prs_elm)

        with pytest.raises(ValueError):
            prs_part.slide_id(slide_part_)
Exemplo n.º 2
0
    def it_provides_access_to_a_related_slide(self, request, slide_,
                                              related_part_):
        slide_part_ = instance_mock(request, SlidePart, slide=slide_)
        related_part_.return_value = slide_part_
        prs_part = PresentationPart(None, None, None, None)

        slide = prs_part.related_slide("rId42")

        related_part_.assert_called_once_with(prs_part, "rId42")
        assert slide is slide_
Exemplo n.º 3
0
    def it_finds_a_slide_by_slide_id(self, is_present, slide_, slide_part_,
                                     related_part_):
        prs_elm = element(
            "p:presentation/p:sldIdLst/(p:sldId{r:id=a,id=256},p:sldId{r:id="
            "b,id=257},p:sldId{r:id=c,id=258})")
        slide_id = 257 if is_present else 666
        expected_value = slide_ if is_present else None
        related_part_.return_value = slide_part_
        slide_part_.slide = slide_
        prs_part = PresentationPart(None, None, None, prs_elm)

        slide = prs_part.get_slide(slide_id)

        assert slide == expected_value
Exemplo n.º 4
0
    def it_finds_the_slide_id_of_a_slide_part(self, slide_part_,
                                              related_part_):
        prs_elm = element(
            "p:presentation/p:sldIdLst/(p:sldId{r:id=a,id=256},p:sldId{r:id="
            "b,id=257},p:sldId{r:id=c,id=258})")
        related_part_.side_effect = iter((None, slide_part_, None))
        prs_part = PresentationPart(None, None, None, prs_elm)

        _slide_id = prs_part.slide_id(slide_part_)

        assert related_part_.call_args_list == [
            call(prs_part, "a"),
            call(prs_part, "b"),
        ]
        assert _slide_id == 257
Exemplo n.º 5
0
    def it_can_rename_related_slide_parts(self, request, related_part_):
        rIds = tuple("rId%d" % n for n in range(5, 0, -1))
        slide_parts = tuple(
            instance_mock(request, SlidePart) for _ in range(5))
        related_part_.side_effect = iter(slide_parts)
        prs_part = PresentationPart(None, None, None, None)

        prs_part.rename_slide_parts(rIds)

        assert related_part_.call_args_list == [
            call(prs_part, rId) for rId in rIds
        ]
        assert [s.partname for s in slide_parts] == [
            PackURI("/ppt/slides/slide%d.xml" % (i + 1))
            for i in range(len(rIds))
        ]
 def slide_id_raises_fixture(self, slide_part_, related_parts_prop_):
     prs_elm = element(
         "p:presentation/p:sldIdLst/(p:sldId{r:id=a,id=256},p:sldId{r:id="
         "b,id=257},p:sldId{r:id=c,id=258})")
     prs_part = PresentationPart(None, None, prs_elm)
     related_parts_prop_.return_value = {"a": None, "b": None, "c": None}
     return prs_part, slide_part_
Exemplo n.º 7
0
 def slide_width_get_fixture(self):
     cx = 8765432
     presentation_elm = (a_presentation().with_nsdecls().with_child(
         a_sldSz().with_cx(cx))).element
     prs_part = PresentationPart(None, None, presentation_elm, None)
     slide_width = cx
     return prs_part, slide_width
 def add_slide_fixture(
     self,
     package_,
     slide_layout_,
     SlidePart_,
     slide_part_,
     slide_,
     _next_slide_partname_prop_,
     relate_to_,
 ):
     prs_part = PresentationPart(None, None, None, package_)
     partname = _next_slide_partname_prop_.return_value
     rId_ = "rId42"
     SlidePart_.new.return_value = slide_part_
     relate_to_.return_value = rId_
     slide_layout_part_ = slide_layout_.part
     slide_part_.slide = slide_
     return (
         prs_part,
         slide_layout_,
         SlidePart_,
         partname,
         package_,
         slide_layout_part_,
         slide_part_,
         rId_,
         slide_,
     )
 def slide_id_raises_fixture(self, slide_part_, related_parts_prop_):
     prs_elm = element(
         'p:presentation/p:sldIdLst/(p:sldId{r:id=a,id=256},p:sldId{r:id='
         'b,id=257},p:sldId{r:id=c,id=258})')
     prs_part = PresentationPart(None, None, prs_elm)
     related_parts_prop_.return_value = {'a': None, 'b': None, 'c': None}
     return prs_part, slide_part_
Exemplo n.º 10
0
 def slide_height_get_fixture(self):
     cy = 5432109
     presentation_elm = (a_presentation().with_nsdecls().with_child(
         a_sldSz().with_cy(cy))).element
     prs_part = PresentationPart(None, None, presentation_elm, None)
     slide_height = cy
     return prs_part, slide_height
Exemplo n.º 11
0
    def it_provides_access_to_its_presentation(self, request):
        prs_ = instance_mock(request, Presentation)
        Presentation_ = class_mock(request,
                                   "pptx.parts.presentation.Presentation",
                                   return_value=prs_)
        prs_elm = element("p:presentation")
        prs_part = PresentationPart(None, None, None, prs_elm)

        prs = prs_part.presentation

        Presentation_.assert_called_once_with(prs_elm, prs_part)
        assert prs is prs_
 def nmp_add_fixture(
     self,
     package_,
     NotesMasterPart_,
     notes_master_part_,
     part_related_by_,
     relate_to_,
 ):
     prs_part = PresentationPart(None, None, None, package_)
     part_related_by_.side_effect = KeyError
     NotesMasterPart_.create_default.return_value = notes_master_part_
     return prs_part, NotesMasterPart_, package_, notes_master_part_
Exemplo n.º 13
0
    def it_provides_access_to_its_notes_master(self, request,
                                               notes_master_part_):
        notes_master_ = instance_mock(request, NotesMaster)
        property_mock(
            request,
            PresentationPart,
            "notes_master_part",
            return_value=notes_master_part_,
        )
        notes_master_part_.notes_master = notes_master_
        prs_part = PresentationPart(None, None, None, None)

        assert prs_part.notes_master is notes_master_
Exemplo n.º 14
0
    def it_provides_access_to_an_existing_notes_master_part(
            self, notes_master_part_, part_related_by_):
        """This is the first of a two-part test to cover the existing notes master case.

        The notes master not-present case follows.
        """
        prs_part = PresentationPart(None, None, None, None)
        part_related_by_.return_value = notes_master_part_

        notes_master_part = prs_part.notes_master_part

        prs_part.part_related_by.assert_called_once_with(
            prs_part, RT.NOTES_MASTER)
        assert notes_master_part is notes_master_part_
Exemplo n.º 15
0
    def it_can_add_a_new_slide(self, request, package_, slide_part_, slide_,
                               relate_to_):
        slide_layout_ = instance_mock(request, SlideLayout)
        partname = PackURI("/ppt/slides/slide9.xml")
        property_mock(request,
                      PresentationPart,
                      "_next_slide_partname",
                      return_value=partname)
        SlidePart_ = class_mock(request, "pptx.parts.presentation.SlidePart")
        SlidePart_.new.return_value = slide_part_
        relate_to_.return_value = "rId42"
        slide_layout_part_ = slide_layout_.part
        slide_part_.slide = slide_
        prs_part = PresentationPart(None, None, package_, None)

        rId, slide = prs_part.add_slide(slide_layout_)

        SlidePart_.new.assert_called_once_with(partname, package_,
                                               slide_layout_part_)
        prs_part.relate_to.assert_called_once_with(prs_part, slide_part_,
                                                   RT.SLIDE)
        assert rId == "rId42"
        assert slide is slide_
Exemplo n.º 16
0
 def rename_fixture(self, related_parts_prop_):
     prs_part = PresentationPart(None, None, None)
     rIds = ('rId1', 'rId2')
     getitem_ = related_parts_prop_.return_value.__getitem__
     calls = [call('rId1'), call('rId2')]
     slide_parts = [
         SlidePart(None, None, None),
         SlidePart(None, None, None),
     ]
     expected_names = [
         PackURI('/ppt/slides/slide1.xml'),
         PackURI('/ppt/slides/slide2.xml'),
     ]
     getitem_.side_effect = slide_parts
     return (prs_part, rIds, getitem_, calls, slide_parts, expected_names)
Exemplo n.º 17
0
 def get_slide_fixture(self, request, slide_, slide_part_,
                       related_parts_prop_):
     is_present = request.param
     prs_elm = element(
         'p:presentation/p:sldIdLst/(p:sldId{r:id=a,id=256},p:sldId{r:id='
         'b,id=257},p:sldId{r:id=c,id=258})')
     prs_part = PresentationPart(None, None, prs_elm)
     slide_id = 257 if is_present else 666
     expected_value = slide_ if is_present else None
     related_parts_prop_.return_value = {
         'a': None,
         'b': slide_part_,
         'c': None
     }
     slide_part_.slide = slide_
     return prs_part, slide_id, expected_value
Exemplo n.º 18
0
    def but_it_adds_a_notes_master_part_when_needed(self, request, package_,
                                                    notes_master_part_,
                                                    part_related_by_,
                                                    relate_to_):
        """This is the second of a two-part test to cover notes-master-not-present case.

        The notes master present case is just above.
        """
        NotesMasterPart_ = class_mock(
            request, "pptx.parts.presentation.NotesMasterPart")
        NotesMasterPart_.create_default.return_value = notes_master_part_
        part_related_by_.side_effect = KeyError
        prs_part = PresentationPart(None, None, package_, None)

        notes_master_part = prs_part.notes_master_part

        NotesMasterPart_.create_default.assert_called_once_with(package_)
        relate_to_.assert_called_once_with(prs_part, notes_master_part_,
                                           RT.NOTES_MASTER)
        assert notes_master_part is notes_master_part_
Exemplo n.º 19
0
 def next_fixture(self):
     prs_elm = element('p:presentation/p:sldIdLst/(p:sldId,p:sldId)')
     prs_part = PresentationPart(None, None, prs_elm)
     partname = PackURI('/ppt/slides/slide3.xml')
     return prs_part, partname
Exemplo n.º 20
0
    def it_knows_the_next_slide_partname_to_help(self):
        prs_elm = element("p:presentation/p:sldIdLst/(p:sldId,p:sldId)")
        prs_part = PresentationPart(None, None, None, prs_elm)

        assert prs_part._next_slide_partname == PackURI(
            "/ppt/slides/slide3.xml")
Exemplo n.º 21
0
 def masters_fixture(self):
     presentation_part = PresentationPart(None, None, None, None)
     return presentation_part
Exemplo n.º 22
0
 def presentation_part(self, presentation_elm):
     return PresentationPart(None, None, presentation_elm, None)
Exemplo n.º 23
0
 def prs(self, ct_presentation_):
     partname = PackURI('/ppt/presentation.xml')
     prs = PresentationPart(partname, None, ct_presentation_, None)
     return prs
Exemplo n.º 24
0
    def it_provides_access_to_its_core_properties(self, request, package_):
        core_properties_ = instance_mock(request, CorePropertiesPart)
        package_.core_properties = core_properties_
        prs_part = PresentationPart(None, None, package_, None)

        assert prs_part.core_properties is core_properties_
Exemplo n.º 25
0
 def slide_fixture(self, slide_, related_parts_prop_):
     prs_part = PresentationPart(None, None, None, None)
     rId = 'rId42'
     related_parts_ = related_parts_prop_.return_value
     related_parts_.__getitem__.return_value.slide = slide_
     return prs_part, rId, slide_
Exemplo n.º 26
0
 def save_fixture(self, package_):
     prs_part = PresentationPart(None, None, None, package_)
     file_ = 'foobar.docx'
     return prs_part, file_, package_
Exemplo n.º 27
0
 def prs_fixture(self, Presentation_, prs_):
     prs_elm = element('p:presentation')
     prs_part = PresentationPart(None, None, prs_elm)
     return prs_part, Presentation_, prs_elm, prs_
Exemplo n.º 28
0
 def it_can_save_the_package_to_a_file(self, package_):
     PresentationPart(None, None, package_, None).save("prs.pptx")
     package_.save.assert_called_once_with("prs.pptx")
Exemplo n.º 29
0
 def core_props_fixture(self, package_, core_properties_):
     prs_part = PresentationPart(None, None, None, package_)
     package_.core_properties = core_properties_
     return prs_part, core_properties_
 def nmp_get_fixture(self, notes_master_part_, part_related_by_):
     prs_part = PresentationPart(None, None, None, None)
     part_related_by_.return_value = notes_master_part_
     return prs_part, notes_master_part_