Ejemplo n.º 1
0
 def it_can_iterate_over_parts_by_walking_rels_graph(self):
     # +----------+       +--------+
     # | pkg_rels |-----> | part_1 |
     # +----------+       +--------+
     #      |               |    ^
     #      v               v    |
     #   external         +--------+
     #                    | part_2 |
     #                    +--------+
     part1, part2 = (Mock(name='part1'), Mock(name='part2'))
     part1.rels = {
         1: Mock(name='rel1', is_external=False, target_part=part2)
     }
     part2.rels = {
         1: Mock(name='rel2', is_external=False, target_part=part1)
     }
     pkg = OpcPackage()
     pkg._rels = {
         1: Mock(name='rel3', is_external=False, target_part=part1),
         2: Mock(name='rel4', is_external=True),
     }
     # verify -----------------------
     assert part1 in pkg.iter_parts()
     assert part2 in pkg.iter_parts()
     assert len([p for p in pkg.iter_parts()]) == 2
Ejemplo n.º 2
0
 def it_can_save_to_a_pkg_file(self, pkg_file_, PackageWriter_, parts,
                               parts_):
     pkg = OpcPackage()
     pkg.save(pkg_file_)
     for part in parts_:
         part.before_marshal.assert_called_once_with()
     PackageWriter_.write.assert_called_once_with(pkg_file_, pkg._rels,
                                                  parts_)
Ejemplo n.º 3
0
 def it_can_save_to_a_pkg_file(
         self, pkg_file_, PackageWriter_, parts, parts_):
     pkg = OpcPackage()
     pkg.save(pkg_file_)
     for part in parts_:
         part.before_marshal.assert_called_once_with()
     PackageWriter_.write.assert_called_once_with(
         pkg_file_, pkg._rels, parts_
     )
Ejemplo n.º 4
0
    def it_can_find_the_next_available_vector_partname(
        self, next_partname_fixture, iter_parts_, PackURI_, packuri_
    ):
        """A vector partname is one with a numeric suffix, like header42.xml."""
        parts_, expected_value = next_partname_fixture
        iter_parts_.return_value = iter(parts_)
        PackURI_.return_value = packuri_
        package = OpcPackage()

        partname = package.next_partname(template="/foo/bar/baz%d.xml")

        PackURI_.assert_called_once_with(expected_value)
        assert partname is packuri_
Ejemplo n.º 5
0
    def it_can_find_the_next_available_vector_partname(self,
                                                       next_partname_fixture,
                                                       iter_parts_, PackURI_,
                                                       packuri_):
        """A vector partname is one with a numeric suffix, like header42.xml."""
        parts_, expected_value = next_partname_fixture
        iter_parts_.return_value = iter(parts_)
        PackURI_.return_value = packuri_
        package = OpcPackage()

        partname = package.next_partname(template="/foo/bar/baz%d.xml")

        PackURI_.assert_called_once_with(expected_value)
        assert partname is packuri_
Ejemplo n.º 6
0
 def it_can_provide_a_list_of_the_parts_it_contains(self):
     # mockery ----------------------
     parts = [Mock(name='part1'), Mock(name='part2')]
     pkg = OpcPackage()
     # verify -----------------------
     with patch.object(OpcPackage, 'iter_parts', return_value=parts):
         assert pkg.parts == [parts[0], parts[1]]
Ejemplo n.º 7
0
 def default_core_props_fixture(
         self, part_related_by_, CorePropertiesPart_, relate_to_,
         core_properties_part_):
     opc_package = OpcPackage()
     part_related_by_.side_effect = KeyError
     CorePropertiesPart_.default.return_value = core_properties_part_
     return opc_package, CorePropertiesPart_, core_properties_part_
Ejemplo n.º 8
0
 def core_props_fixture(
         self, _core_properties_part_prop_, core_properties_part_,
         core_properties_):
     opc_package = OpcPackage()
     _core_properties_part_prop_.return_value = core_properties_part_
     core_properties_part_.core_properties = core_properties_
     return opc_package, core_properties_
Ejemplo n.º 9
0
 def it_constructs_a_default_settings_part_to_help(self):
     package = OpcPackage()
     settings_part = SettingsPart.default(package)
     assert isinstance(settings_part, SettingsPart)
     assert settings_part.partname == '/word/settings.xml'
     assert settings_part.content_type == CT.WML_SETTINGS
     assert settings_part.package is package
     assert len(settings_part.element) == 6
Ejemplo n.º 10
0
 def it_can_construct_a_default_styles_part_to_help(self):
     package = OpcPackage()
     styles_part = StylesPart.default(package)
     assert isinstance(styles_part, StylesPart)
     assert styles_part.partname == '/word/styles.xml'
     assert styles_part.content_type == CT.WML_STYLES
     assert styles_part.package is package
     assert len(styles_part.element) == 6
Ejemplo n.º 11
0
 def it_can_open_a_pkg_file(self, PackageReader_, PartFactory_, Unmarshaller_):
     # mockery ----------------------
     pkg_file = Mock(name="pkg_file")
     pkg_reader = PackageReader_.from_file.return_value
     # exercise ---------------------
     pkg = OpcPackage.open(pkg_file)
     # verify -----------------------
     PackageReader_.from_file.assert_called_once_with(pkg_file)
     Unmarshaller_.unmarshal.assert_called_once_with(pkg_reader, pkg, PartFactory_)
     assert isinstance(pkg, OpcPackage)
Ejemplo n.º 12
0
 def it_can_open_a_pkg_file(self, PackageReader_, PartFactory_,
                            Unmarshaller_):
     # mockery ----------------------
     pkg_file = Mock(name='pkg_file')
     pkg_reader = PackageReader_.from_file.return_value
     # exercise ---------------------
     pkg = OpcPackage.open(pkg_file)
     # verify -----------------------
     PackageReader_.from_file.assert_called_once_with(pkg_file)
     Unmarshaller_.unmarshal.assert_called_once_with(pkg_reader, pkg,
                                                     PartFactory_)
     assert isinstance(pkg, OpcPackage)
Ejemplo n.º 13
0
    def it_creates_a_default_core_props_part_if_none_present(
            self, part_related_by_, CorePropertiesPart_, relate_to_,
            core_properties_part_):
        part_related_by_.side_effect = KeyError
        CorePropertiesPart_.default.return_value = core_properties_part_
        opc_package = OpcPackage()

        core_properties_part = opc_package._core_properties_part

        CorePropertiesPart_.default.assert_called_once_with(opc_package)
        relate_to_.assert_called_once_with(opc_package, core_properties_part_,
                                           RT.CORE_PROPERTIES)
        assert core_properties_part is core_properties_part_
Ejemplo n.º 14
0
 def core_props_part_fixture(self, part_related_by_, core_properties_part_):
     opc_package = OpcPackage()
     part_related_by_.return_value = core_properties_part_
     return opc_package, core_properties_part_
Ejemplo n.º 15
0
 def it_initializes_its_rels_collection_on_first_reference(
         self, Relationships_):
     pkg = OpcPackage()
     rels = pkg.rels
     Relationships_.assert_called_once_with(PACKAGE_URI.baseURI)
     assert rels == Relationships_.return_value
Ejemplo n.º 16
0
 def related_part_fixture_(self, request, rels_, reltype):
     related_part_ = instance_mock(request, Part, name='related_part_')
     rels_.part_with_reltype.return_value = related_part_
     pkg = OpcPackage()
     pkg._rels = rels_
     return pkg, reltype, related_part_
Ejemplo n.º 17
0
 def pkg_with_rels_(self, request, rels_):
     pkg = OpcPackage()
     pkg._rels = rels_
     return pkg
Ejemplo n.º 18
0
 def pkg(self, request):
     return OpcPackage()