summaryrefslogtreecommitdiffstats
path: root/share/extensions/tests/test_media_zip.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/tests/test_media_zip.py
parentInitial commit. (diff)
downloadinkscape-12fc8abae6d434cac7670a59ed3a67301cc2eb10.tar.xz
inkscape-12fc8abae6d434cac7670a59ed3a67301cc2eb10.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/tests/test_media_zip.py')
-rw-r--r--share/extensions/tests/test_media_zip.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/share/extensions/tests/test_media_zip.py b/share/extensions/tests/test_media_zip.py
new file mode 100644
index 0000000..674283a
--- /dev/null
+++ b/share/extensions/tests/test_media_zip.py
@@ -0,0 +1,56 @@
+# coding=utf-8
+import io
+import zipfile
+
+import re
+
+from media_zip import CompressedMedia
+from inkex.tester import ComparisonMixin, TestCase
+from inkex.tester.filters import CompareSize
+
+
+class CmoTestEmbed(TestCase):
+ def test_complex(self):
+ params = (self.data_file("svg", "embed.svg"), "--font_list=True")
+ cmo = CompressedMedia()
+ out = io.BytesIO()
+ cmo.run(params, output=out)
+
+ result = io.BytesIO(out.getvalue())
+
+ with zipfile.ZipFile(result, mode="r") as f:
+ files = f.filelist
+ files = {i.filename for i in files}
+ self.assertEqual(
+ files,
+ {
+ "images/linecap.png", # this file is referenced twice
+ # this file has the same filename, but
+ # different source path, so a 1 is appended
+ "images/linecap1.png",
+ "images/markers.svg",
+ "embed.svg",
+ "fontlist.txt",
+ },
+ )
+ # Assert that the image tags have updated links
+ svg = f.read("embed.svg").decode("utf8")
+ matches = re.finditer(r'xlink:href="(.*)"', svg)
+ self.assertEqual(len(list(matches)), 5)
+ for match in matches:
+ if match.groups(1).startswith("data"):
+ continue
+ self.assertTrue(match.groups(1).startswith("images/"))
+
+ # Assert that the font list is correct
+ fontlist = f.read("fontlist.txt").decode("utf8")
+ fontlist = fontlist.splitlines()[1:]
+ self.assertEqual(
+ fontlist,
+ [
+ "'Courier New' normal",
+ "'Times New Roman'",
+ "Arial normal",
+ "Verdana normal",
+ ],
+ )