summaryrefslogtreecommitdiffstats
path: root/share/extensions/other/gcodetools/tests/test_inkex_inx.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:24:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:24:48 +0000
commitcca66b9ec4e494c1d919bff0f71a820d8afab1fa (patch)
tree146f39ded1c938019e1ed42d30923c2ac9e86789 /share/extensions/other/gcodetools/tests/test_inkex_inx.py
parentInitial commit. (diff)
downloadinkscape-cca66b9ec4e494c1d919bff0f71a820d8afab1fa.tar.xz
inkscape-cca66b9ec4e494c1d919bff0f71a820d8afab1fa.zip
Adding upstream version 1.2.2.upstream/1.2.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'share/extensions/other/gcodetools/tests/test_inkex_inx.py')
-rw-r--r--share/extensions/other/gcodetools/tests/test_inkex_inx.py114
1 files changed, 114 insertions, 0 deletions
diff --git a/share/extensions/other/gcodetools/tests/test_inkex_inx.py b/share/extensions/other/gcodetools/tests/test_inkex_inx.py
new file mode 100644
index 0000000..211b746
--- /dev/null
+++ b/share/extensions/other/gcodetools/tests/test_inkex_inx.py
@@ -0,0 +1,114 @@
+#!/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)