From 19df25b99b405ec4fc7616b58384eca7879b6fd4 Mon Sep 17 00:00:00 2001 From: chanicpanic <51764816+chanicpanic@users.noreply.github.com> Date: Sun, 27 Feb 2022 18:48:50 -0800 Subject: [PATCH] Fix Document.add_path for empty groups (#170) --- svgpathtools/document.py | 2 +- test/test_groups.py | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/svgpathtools/document.py b/svgpathtools/document.py index f88f5ba..1dd9077 100644 --- a/svgpathtools/document.py +++ b/svgpathtools/document.py @@ -289,7 +289,7 @@ class Document: # If given a list of strings (one or more), assume it represents # a sequence of nested group names - elif all(isinstance(elem, str) for elem in group): + elif len(group) > 0 and all(isinstance(elem, str) for elem in group): group = self.get_or_add_group(group) elif not isinstance(group, Element): diff --git a/test/test_groups.py b/test/test_groups.py index 44b6cb9..aeb3393 100644 --- a/test/test_groups.py +++ b/test/test_groups.py @@ -235,4 +235,11 @@ class TestGroups(unittest.TestCase): path = parse_path(path_d) svg_path = doc.add_path(path, group=new_leaf) - self.assertEqual(path_d, svg_path.get('d')) \ No newline at end of file + self.assertEqual(path_d, svg_path.get('d')) + + # Test that paths are added to the correct group + new_sibling = doc.get_or_add_group( + ['base_group', 'new_parent', 'new_sibling']) + doc.add_path(path, group=new_sibling) + self.assertEqual(len(new_sibling), 1) + self.assertEqual(path_d, new_sibling[0].get('d'))