Beispiel #1
0
 def test_suffix_layers(self):
     idml_file = IDMLPackage(os.path.join(IDMLFILES_DIR, "4-pages.idml"), mode="r")
     designmap = idml_file.designmap
     self.assertEqual(designmap.layer_nodes[0].get("Name"), 'Layer 1')
     designmap.suffix_layers(" #66")
     self.assertEqual(designmap.layer_nodes[0].get("Name"), 'Layer 1 #66')
     idml_file.close()
Beispiel #2
0
 def test_layer_nodes(self):
     idml_file = IDMLPackage(os.path.join(IDMLFILES_DIR, "4-pages.idml"),
                             mode="r")
     designmap = idml_file.designmap
     self.assertEqual(len(designmap.layer_nodes), 1)
     self.assertEqual(designmap.layer_nodes[0].get("Name"), 'Layer 1')
     idml_file.close()
Beispiel #3
0
 def test_spread_nodes(self):
     idml_file = IDMLPackage(os.path.join(IDMLFILES_DIR, "4-pages-layers-with-guides.idml"), mode="r")
     designmap = idml_file.designmap
     self.assertEqual([etree_dom_to_tree(n, True) for n in designmap.spread_nodes], [
         {
             'attrs': {'src': 'Spreads/Spread_ud8.xml'},
             'content': [],
             'tag': '{http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging}Spread',
             'tail': '',
             'text': None
         },
         {
             'attrs': {'src': 'Spreads/Spread_u13b.xml'},
             'content': [],
             'tag': '{http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging}Spread',
             'tail': '',
             'text': None
         },
         {
             'attrs': {'src': 'Spreads/Spread_u142.xml'},
             'content': [],
             'tag': '{http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging}Spread',
             'tail': '',
             'text': None
         }
     ])
     idml_file.close()
Beispiel #4
0
 def test_repr(self):
     idml_file = IDMLPackage(os.path.join(IDMLFILES_DIR, "4-pages.idml"),
                             mode="r")
     designmap = idml_file.designmap
     self.assertEqual(
         repr(designmap),
         '<Designmap object designmap.xml at %s>' % hex(id(designmap)))
     idml_file.close()
Beispiel #5
0
    def test_active_layer(self):
        idml_file = IDMLPackage(os.path.join(IDMLFILES_DIR, "4-pages-layers-with-guides.idml"), mode="r")
        designmap = idml_file.designmap
        self.assertEqual(designmap.active_layer, "u2db")

        designmap.active_layer = "ua4"
        self.assertEqual(designmap.active_layer, "ua4")

        del designmap.active_layer
        self.assertEqual(designmap.active_layer, None)
        idml_file.close()
Beispiel #6
0
    def test_remove_layer(self):
        # Remove active layer.
        idml_file = IDMLPackage(os.path.join(IDMLFILES_DIR, "4-pages-layers-with-guides.idml"), mode="r")
        designmap = idml_file.designmap
        self.assertEqual(designmap.active_layer, "u2db")

        designmap.remove_layer("u2db")
        self.assertEqual(designmap.active_layer, "ua4")
        idml_file.close()

        # Remove inactive layer.
        idml_file = IDMLPackage(os.path.join(IDMLFILES_DIR, "4-pages-layers-with-guides.idml"), mode="r")
        designmap = idml_file.designmap
        self.assertEqual(designmap.active_layer, "u2db")

        designmap.remove_layer("ua4")
        self.assertEqual(designmap.active_layer, "u2db")
        designmap.remove_layer("u2db")
        self.assertEqual(designmap.active_layer, None)
        idml_file.close()
Beispiel #7
0
def use_working_copy(view_func):
    def new_func(idml_package, *args, **kwargs):
        if idml_package.working_copy_path is not None:
            return view_func(idml_package, *args, **kwargs)

        tmp_filename = NamedTemporaryFile().name
        idml_package.extractall(tmp_filename)
        idml_package.working_copy_path = tmp_filename
        idml_package.init_lazy_references()

        if idml_package.debug:
            # In debug it is useful to have the original trace.
            idml_package = view_func(idml_package, *args, **kwargs)
        else:
            # Catch any exception to reset working_copy_path.
            try:
                idml_package = view_func(idml_package, *args, **kwargs)
            except BaseException, err:
                idml_package.working_copy_path = None
                raise err

        from simple_idml.idml import IDMLPackage

        # Create a new archive from the extracted one.
        tmp_package = IDMLPackage("%s.idml" % tmp_filename, mode="w")
        for root, dirs, filenames in os.walk(tmp_filename):
            for filename in filenames:
                filename = os.path.join(root, filename)
                arcname = filename.replace(tmp_filename, "")
                tmp_package.write(filename, arcname)
        tmp_package.close()

        # swap working_copy with initial IDML Package.
        new_filename = idml_package.filename
        idml_package.close()
        os.unlink(idml_package.filename)
        os.rename(tmp_package.filename, new_filename)
        shutil.rmtree(tmp_filename)
        idml_package.working_copy_path = None

        return IDMLPackage(new_filename)
Beispiel #8
0
def use_working_copy(view_func):
    def new_func(idml_package, *args, **kwargs):
        if idml_package.working_copy_path is not None:
            return view_func(idml_package, *args, **kwargs)

        tmp_filename = NamedTemporaryFile().name
        idml_package.extractall(tmp_filename)
        idml_package.working_copy_path = tmp_filename
        idml_package.init_lazy_references()

        if idml_package.debug:
            # In debug it is useful to have the original trace.
            idml_package = view_func(idml_package, *args, **kwargs)
        else:
            # Catch any exception to reset working_copy_path.
            try:
                idml_package = view_func(idml_package, *args, **kwargs)
            except BaseException, err:
                idml_package.working_copy_path = None
                raise err

        from simple_idml.idml import IDMLPackage
        # Create a new archive from the extracted one.
        tmp_package = IDMLPackage("%s.idml" % tmp_filename, mode="w")
        for root, dirs, filenames in os.walk(tmp_filename):
            for filename in filenames:
                filename = os.path.join(root, filename)
                arcname = filename.replace(tmp_filename, "")
                tmp_package.write(filename, arcname)
        tmp_package.close()

        # swap working_copy with initial IDML Package.
        new_filename = idml_package.filename
        idml_package.close()
        os.unlink(idml_package.filename)
        os.rename(tmp_package.filename, new_filename)
        shutil.rmtree(tmp_filename)
        idml_package.working_copy_path = None

        return IDMLPackage(new_filename)
Beispiel #9
0
    def test_add_layer_nodes(self):
        idml_file = IDMLPackage(os.path.join(IDMLFILES_DIR, "4-pages.idml"),
                                mode="r")
        designmap = idml_file.designmap

        designmap.add_layer_nodes([
            etree.fromstring(
                """<Layer Self="toto" Name="Layer 2" Visible="true" Locked="false" IgnoreWrap="false" ShowGuides="true" LockGuides="false" UI="true" Expendable="true" Printable="true">
                    <Properties>
                        <LayerColor type="enumeration">Red</LayerColor>
                    </Properties>
                </Layer>"""),
            etree.fromstring(
                """<Layer Self="titi" Name="Layer 3" Visible="true" Locked="false" IgnoreWrap="false" ShowGuides="true" LockGuides="false" UI="true" Expendable="true" Printable="true">
                    <Properties>
                        <LayerColor type="enumeration">Blue</LayerColor>
                    </Properties>
                </Layer>"""),
        ])
        self.assertEqual(len(designmap.layer_nodes), 3)
        self.assertEqual([n.get("Name") for n in designmap.layer_nodes],
                         ['Layer 1', 'Layer 2', 'Layer 3'])
        idml_file.close()
Beispiel #10
0
    def test_add_layer_nodes(self):
        idml_file = IDMLPackage(os.path.join(IDMLFILES_DIR, "4-pages.idml"), mode="r")
        designmap = idml_file.designmap

        designmap.add_layer_nodes([
            etree.fromstring(
                """<Layer Self="toto" Name="Layer 2" Visible="true" Locked="false" IgnoreWrap="false" ShowGuides="true" LockGuides="false" UI="true" Expendable="true" Printable="true">
                    <Properties>
                        <LayerColor type="enumeration">Red</LayerColor>
                    </Properties>
                </Layer>"""
            ),
            etree.fromstring(
                """<Layer Self="titi" Name="Layer 3" Visible="true" Locked="false" IgnoreWrap="false" ShowGuides="true" LockGuides="false" UI="true" Expendable="true" Printable="true">
                    <Properties>
                        <LayerColor type="enumeration">Blue</LayerColor>
                    </Properties>
                </Layer>"""
            ),
        ])
        self.assertEqual(len(designmap.layer_nodes), 3)
        self.assertEqual([n.get("Name") for n in designmap.layer_nodes],
                         ['Layer 1', 'Layer 2', 'Layer 3'])
        idml_file.close()
Beispiel #11
0
 def test_repr(self):
     idml_file = IDMLPackage(os.path.join(IDMLFILES_DIR, "4-pages.idml"), mode="r")
     designmap = idml_file.designmap
     self.assertEqual(repr(designmap), '<Designmap object designmap.xml at %s>' % hex(id(designmap)))
     idml_file.close()