def test_color_style(self): svg = ElementTree.fromstring( XML_HEADER + b'<svg width="10" height="10">' + b'<g sTYle="strOKe: #123; fILL: none;"></g></svg>' ) with self.settings(SVG_COLORS={"white": "#fff", "green": "#0f5"}): result = svg_util.color_icon(svg) self.assertEqual(2, len(result)) self.assertTrue("white" in result) self.assertTrue("green" in result) self.assertTrue(b'sTYle="stroke: #fff; fILL: none;"' in ElementTree.tostring(result["white"]))
def test_color_style(self): svg = ElementTree.fromstring( XML_HEADER + b'<svg width="10" height="10">' + b'<g sTYle="strOKe: #123; fILL: none;"></g></svg>') with self.settings(SVG_COLORS={'white': '#fff', 'green': '#0f5'}): result = svg_util.color_icon(svg) self.assertEqual(2, len(result)) self.assertTrue('white' in result) self.assertTrue('green' in result) self.assertTrue(b'sTYle="stroke: #fff; fILL: none;"' in ElementTree.tostring(result['white']))
def test_color_stroke(self): svg = ElementTree.fromstring( XML_HEADER + b'<svg width="10" height="10">' + b'<g stroke="#000" fill="noNE"></g></svg>' ) with self.settings(SVG_COLORS={"white": "#fff", "green": "#0f5"}): result = svg_util.color_icon(svg) self.assertEqual(2, len(result)) self.assertTrue("white" in result) self.assertTrue("green" in result) self.assertTrue(b'fill="noNE"' in ElementTree.tostring(result["white"])) self.assertFalse(b'stroke="#0f5"' in ElementTree.tostring(result["white"])) self.assertTrue(b'stroke="#0f5"' in ElementTree.tostring(result["green"]))
def test_color_embedded_stylesheet(self): svg = ElementTree.fromstring( XML_HEADER + b'<svg width="10" height="10">' + b'<stYLe>\n.some_class{\nfill:#123; STroke: grey;}\n</stYLe>\n' + b'<g class="some_class"></g></svg>') with self.settings(SVG_COLORS={'white': '#fff', 'green': '#0f5'}): result = svg_util.color_icon(svg) self.assertEqual(2, len(result)) self.assertTrue('white' in result) self.assertTrue('green' in result) self.assertTrue( b'fill: #fff;' in ElementTree.tostring(result['white'])) self.assertTrue( b'stroke: #0f5;' in ElementTree.tostring(result['green']))
def test_color_embedded_stylesheet(self): svg = ElementTree.fromstring( XML_HEADER + b'<svg width="10" height="10">' + b"<stYLe>\n.some_class{\nfill:#123; STroke: grey;}\n</stYLe>\n" + b'<g class="some_class"></g></svg>' ) with self.settings(SVG_COLORS={"white": "#fff", "green": "#0f5"}): result = svg_util.color_icon(svg) self.assertEqual(2, len(result)) self.assertTrue("white" in result) self.assertTrue("green" in result) self.assertTrue(b"fill: #fff;" in ElementTree.tostring(result["white"])) self.assertTrue(b"stroke: #0f5;" in ElementTree.tostring(result["green"]))
def save(self, *args, **kwargs): """Save other colors of the issue icon. We assume it is validated in the clean function""" if self.icon: xml = svg.validate_svg(self.icon.file.read()) square = svg.make_square(xml) colors = svg.color_icon(square) super(Issue, self).save(*args, **kwargs) for key, content in colors.items(): filename = self.icon_color(key) if self.icon.storage.exists(filename): self.icon.storage.delete(filename) self.icon.storage.save(filename, svg.as_file(content)) else: super(Issue, self).save(*args, **kwargs)
def test_color_stroke(self): svg = ElementTree.fromstring( XML_HEADER + b'<svg width="10" height="10">' + b'<g stroke="#000" fill="noNE"></g></svg>') with self.settings(SVG_COLORS={'white': '#fff', 'green': '#0f5'}): result = svg_util.color_icon(svg) self.assertEqual(2, len(result)) self.assertTrue('white' in result) self.assertTrue('green' in result) self.assertTrue( b'fill="noNE"' in ElementTree.tostring(result['white'])) self.assertFalse( b'stroke="#0f5"' in ElementTree.tostring(result['white'])) self.assertTrue( b'stroke="#0f5"' in ElementTree.tostring(result['green']))