def test_svg_by_url_link(self): """Select element by urls in styles""" doc = svg_file(self.data_file('svg', 'markers.svg')) elem = doc.getElementsByStyleUrl('Arrow1Lend')[0] self.assertEqual(elem.get_id(), 'dimension') elem = doc.getElementsByStyleUrl('Arrow1Lstart')[0] self.assertEqual(elem.get_id(), 'dimension') self.assertEqual(doc.getElementsByStyleUrl('not-an-id'), [])
def test_svg_by_class(self): """Select elements by class""" doc = svg_file(self.data_file('svg', 'multilayered-test.svg')) elems = doc.getElementsByClass('frog') self.assertEqual([elem.get_id() for elem in elems], ['path3902', 'text3926', 'path3900', 'rect3898']) elems = doc.getElementsByClass('apple') self.assertEqual([elem.get_id() for elem in elems], ['text3926', 'rect3898'])
def test_creation(self): """Stylesheet is created when needed""" self.svg = svg_file(self.data_file('svg', 'empty.svg')) self.assertEqual(len(self.svg.stylesheets), 0) self.assertEqual(len(self.svg.stylesheet), 0) self.assertEqual(len(self.svg.stylesheets), 1) self.svg.stylesheet.append('.cls1 { fill: blue; }') self.assertIn(b'style><![CDATA[\n.cls1 {\n fill:blue;\n}\n]]><', self.svg.tostring())
def test_svg_by_href(self): """Select element by xlink href""" doc = svg_file(self.data_file('svg', 'multilayered-test.svg')) elem = doc.getElementsByHref('path3900')[0] self.assertEqual(elem.TAG, 'textPath') self.assertEqual(elem.get_id(), 'textPath3923') elem = doc.getElementsByHref('path3904')[0] self.assertEqual(elem.TAG, 'textPath') self.assertEqual(elem.get_id(), 'textPath3906') self.assertEqual(doc.getElementsByHref('not-an-id'), [])
def test_create_guide(self): """Test creating guides""" doc = svg_file(self.data_file('svg', 'multilayered-test.svg')) namedview = doc.namedview self.assertEqual(len(namedview.get_guides()), 0) namedview.add(Guide().move_to(50, 50, 45)) self.assertEqual(len(namedview.get_guides()), 1) guide, = namedview.get_guides() self.assertEqual(guide.get('position'), '50,50') self.assertEqual(guide.get('orientation'), '0.707107,-0.707107')
def test_selected_bbox(self): """Can we get a bounding box from the selected items""" doc = svg_file(self.data_file('svg', 'multilayered-test.svg')) doc.selected.set('path3904', 'path3902') from inkex.transforms import BoundingBox x, y, w, h = 199.544, 156.412, 377.489, 199.972 # from inkscape --query-all expected_3904 = BoundingBox((x, x + w), (y, y + h)) x, y, w, h = 145.358, 478.373, 439.135, 419.142 # from inkscape --query-all expected_3902 = BoundingBox((x, x + w), (y, y + h)) expected = list(expected_3902 + expected_3904) for x, y in zip(expected, doc.selection.bounding_box()): self.assertDeepAlmostEqual(tuple(x), tuple(y), delta=1e-3)
def setUp(self): super().setUp() self.svg = svg_file(self.data_file('svg', self.source_file))
def setUp(self): self.svg = svg_file(self.data_file('svg', 'css.svg')) self.elem = self.svg.getElementById('rect2')
def setUp(self): super(StyleSheetTest, self).setUp() self.svg = svg_file(self.data_file('svg', 'css.svg')) self.css = self.svg.stylesheet
def test_defs(self): """Can get the defs from an svg file""" doc = svg_file(self.data_file('svg', 'markers.svg')) self.assertEqual(len(doc.defs), 2) doc = svg('id="empty"') self.assertEqual(len(doc.defs), 0)
def test_svg_center_position(self): """SVG with namedview has a center position""" doc = svg_file(self.data_file('svg', 'multilayered-test.svg')) self.assertTrue(doc.namedview.center.is_close((30.714286, 520.0))) self.assertTrue(svg().namedview.center.is_close(Vector2d()))
def test_svg_layers(self): """Selected layer is selected""" doc = svg_file(self.data_file('svg', 'multilayered-test.svg')) self.assertEqual(doc.get_current_layer().get('id'), 'layer3') doc = svg('id="empty"') self.assertEqual(doc.get_current_layer(), doc)
def test_svg_name(self): """Can get the sodipodi name attribute""" doc = svg_file(self.data_file('svg', 'multilayered-test.svg')) self.assertEqual(doc.name, 'Nouveau document 1')