示例#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
    def rels_fixture(self, request, part_1_, part_2_):
        """
        +----------+          +--------+
        | pkg_rels |-- r1 --> | part_1 |
        +----------+          +--------+
             |     |            |    ^
          r5 |     | r4      r2 |    | r3
             |     |            |    |
             v     |            v    |
         external  |          +--------+
                   +--------> | part_2 |
                              +--------+
        """
        r1 = self.rel(request, False, part_1_, "r1")
        r2 = self.rel(request, False, part_2_, "r2")
        r3 = self.rel(request, False, part_1_, "r3")
        r4 = self.rel(request, False, part_2_, "r4")
        r5 = self.rel(request, True, None, "r5")

        package = OpcPackage()

        package._rels = self.rels(request, (r1, r4, r5))
        part_1_.rels = self.rels(request, (r2,))
        part_2_.rels = self.rels(request, (r3,))

        return package, (part_1_, part_2_), (r1, r2, r3, r4, r5)
示例#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_
     )
 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)
 def next_partname_fixture(self, request, iter_parts_):
     existing_partname_numbers, next_partname_number = request.param
     package = OpcPackage()
     parts = [
         instance_mock(
             request, Part, name="part[%d]" % idx, partname="/foo/bar/baz%d.xml" % n
         )
         for idx, n in enumerate(existing_partname_numbers)
     ]
     iter_parts_.return_value = iter(parts)
     partname_template = "/foo/bar/baz%d.xml"
     expected_partname = PackURI("/foo/bar/baz%d.xml" % next_partname_number)
     return package, partname_template, expected_partname
示例#6
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_
示例#7
0
 def pkg_with_rels_(self, request, rels_):
     pkg = OpcPackage()
     pkg._rels = rels_
     return pkg
 def pkg_with_rels_(self, request, rels_):
     pkg = OpcPackage()
     pkg._rels = rels_
     return pkg
 def pkg(self, request):
     return OpcPackage()
 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_
 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_)
示例#12
0
 def it_initializes_its_rels_collection_on_first_reference(
         self, RelationshipCollection_):
     pkg = OpcPackage()
     rels = pkg.rels
     RelationshipCollection_.assert_called_once_with(PACKAGE_URI.baseURI)
     assert rels == RelationshipCollection_.return_value