Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_symbol_node(self):
drawing = svglib.svg2rlg(io.StringIO(textwrap.dedent(u'''\
<svg viewBox="0 0 100 100" height="600" width="900" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
<defs>
<symbol id="X">
<path d="M 0,-100 V 0 H 50"></path>
</symbol>
</defs>
</svg>
''')))
use_group = drawing.contents[0].contents[0].contents[0]
assert isinstance(use_group.contents[0].contents[0], svglib.NoStrokePath)
assert isinstance(use_group.contents[0].contents[1], Path)
else:
logger.debug("Suspicious path operator: %s" % op)
lastop = op
gr = Group()
self.applyStyleOnShape(path, node)
if path.operators[-1] != _CLOSEPATH:
unclosed_subpath_pointers.append(len(path.operators))
if unclosed_subpath_pointers and path.fillColor is not None:
# ReportLab doesn't fill unclosed paths, so we are creating a copy
# of the path with all subpaths closed, but without stroke.
# https://bitbucket.org/rptlab/reportlab/issues/99/
closed_path = NoStrokePath(copy_from=path)
for pointer in reversed(unclosed_subpath_pointers):
closed_path.operators.insert(pointer, _CLOSEPATH)
gr.add(closed_path)
path.fillColor = None
gr.add(path)
return gr