summaryrefslogtreecommitdiffstats
path: root/share/extensions/tests/test_inkex_inx.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--share/extensions/tests/test_inkex_inx.py144
1 files changed, 144 insertions, 0 deletions
diff --git a/share/extensions/tests/test_inkex_inx.py b/share/extensions/tests/test_inkex_inx.py
new file mode 100644
index 0000000..5a55efa
--- /dev/null
+++ b/share/extensions/tests/test_inkex_inx.py
@@ -0,0 +1,144 @@
+#!/usr/bin/env python
+# coding=utf-8
+"""
+Test elements extra logic from svg xml lxml custom classes.
+"""
+
+import os
+from glob import glob
+
+from inkex.utils import PY3
+from inkex.tester import TestCase
+from inkex.tester.inx import InxMixin
+from inkex.inx import InxFile
+
+
+class InxTestCase(InxMixin, TestCase):
+ """Test INX files"""
+
+ def test_inx_effect(self):
+ inx = InxFile(
+ """
+<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+ <name>TestOne</name>
+ <id>org.inkscape.test.inx_one</id>
+ <effect needs-live-preview="false">
+ <object-type>all</object-type>
+ <effects-menu>
+ <submenu name="Banana">
+ <submenu name="Ice Cream"/>
+ </submenu>
+ </effects-menu>
+ </effect>
+ <script>
+ <command location="inx" interpreter="python">inx_test.py</command>
+ </script>
+</inkscape-extension>"""
+ )
+ self.assertEqual(inx.name, "TestOne")
+ self.assertEqual(inx.ident, "org.inkscape.test.inx_one")
+ self.assertEqual(inx.slug, "InxOne")
+ self.assertEqual(
+ inx.metadata, {"type": "effect", "preview": False, "objects": "all"}
+ )
+ self.assertEqual(inx.menu, ["Banana", "Ice Cream", "TestOne"])
+ self.assertEqual(inx.warnings, [])
+
+ def test_inx_output(self):
+ inx = InxFile(
+ """
+<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+ <_name>TestTwo</_name>
+ <id>org.inkscape.test.inx_two</id>
+ <output>
+ <extension>.inx</extension>
+ <mimetype>text/xml+inx</mimetype>
+ <filetypename>Extension (*.inx)</filetypename>
+ <_filetypetooltip>The extension extension repention suspension.</_filetypetooltip>
+ <dataloss>true</dataloss>
+ </output>
+</inkscape-extension>"""
+ )
+ self.assertEqual(inx.name, "TestTwo")
+ self.assertEqual(inx.ident, "org.inkscape.test.inx_two")
+ self.assertEqual(
+ inx.metadata,
+ {
+ "dataloss": True,
+ "extension": ".inx",
+ "mimetype": "text/xml+inx",
+ "name": "Extension (*.inx)",
+ "tooltip": "The extension extension repention suspension.",
+ "type": "output",
+ },
+ )
+ self.assertEqual(
+ inx.warnings,
+ [
+ "Use of old translation scheme: <_filetypetooltip...>",
+ "Use of old translation scheme: <_name...>",
+ ],
+ )
+
+ def test_inx_input(self):
+ inx = InxFile(
+ """<inkscape-extension>
+ <name>TestThree</name>
+ <id>org.inkscape.test.inx_three</id>
+ <input>
+ <extension>.inx</extension>
+ <mimetype>text/xml+inx</mimetype>
+ <filetypename>Extension (*.inx)</filetypename>
+ <filetypetooltip>The extension extension repention suspension.</filetypetooltip>
+ </input>
+</inkscape-extension>"""
+ )
+ self.assertEqual(inx.name, "TestThree")
+ self.assertEqual(
+ inx.metadata,
+ {
+ "extension": ".inx",
+ "mimetype": "text/xml+inx",
+ "name": "Extension (*.inx)",
+ "tooltip": "The extension extension repention suspension.",
+ "type": "input",
+ },
+ )
+ self.assertEqual(inx.warnings, ["No inx xml prefix."])
+
+ def test_inx_template(self):
+ inx = InxFile(
+ """<inkscape-extension xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
+ <name>TestFour</name>
+ <id>org.inkscape.test.inx_four</id>
+ <effect needs-live-preview="false">
+ <object-type>all</object-type>
+ <effects-menu hidden="true" />
+ </effect>
+ <inkscape:templateinfo>
+ <inkscape:name>Magic Number</inkscape:name>
+ <inkscape:author>Donky Oaty</inkscape:author>
+ <inkscape:shortdesc>Something might happen.</inkscape:shortdesc>
+ <inkscape:date>2070-01-01</inkscape:date>
+ <inkscape:keywords>word food strawberry</inkscape:keywords>
+ </inkscape:templateinfo>
+</inkscape-extension>"""
+ )
+ self.assertEqual(inx.name, "TestFour")
+ self.assertEqual(
+ inx.metadata,
+ {
+ "author": "Donky Oaty",
+ "desc": "Something might happen.",
+ "type": "template",
+ },
+ )
+ self.assertEqual(inx.warnings, ["No inx xml prefix."])
+
+ def test_inx_files(self):
+ """Get all inx files and test each of them"""
+ if not PY3:
+ self.skipTest("No INX testing in python2")
+ return
+ for inx_file in glob(os.path.join(self._testdir(), "..", "*.inx")):
+ self.assertInxIsGood(inx_file)