def test_write_title(self, bar_chart, root_xml): cw = BarChartWriter(bar_chart) cw._write_title(root_xml) expected = """ <test xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"> <c:title> <c:tx> <c:rich> <a:bodyPr/> <a:lstStyle/> <a:p> <a:pPr> <a:defRPr/> </a:pPr> <a:r> <a:rPr lang="en-GB"/> <a:t>TITLE</a:t> </a:r> </a:p> </c:rich> </c:tx> <c:layout/> </c:title> </test> """ xml = tostring(root_xml) diff = compare_xml(xml, expected) assert diff is None, diff
def test_write_series(self, bar_chart, root_xml): cw = BarChartWriter(bar_chart) cw._write_series(root_xml) expected = """ <test xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"> <c:ser> <c:idx val="0"/> <c:order val="0"/> <c:spPr> <a:solidFill> <a:srgbClr val="00FF00"/> </a:solidFill> <a:ln> <a:solidFill> <a:srgbClr val="00FF00"/> </a:solidFill> </a:ln> </c:spPr> <c:val> <c:numRef> <c:f>'data'!$A$1:$A$11</c:f> </c:numRef> </c:val> </c:ser> </test> """ xml = tostring(root_xml) diff = compare_xml(xml, expected) assert diff is None, diff
def test_write_chart(self, bar_chart): """check if some characteristic tags of LineChart are there""" cw = BarChartWriter(bar_chart) cw._write_chart() tagnames = ["{%s}barChart" % CHART_NS, "{%s}valAx" % CHART_NS, "{%s}catAx" % CHART_NS] root = safe_iterator(cw.root) chart_tags = [e.tag for e in root] for tag in tagnames: assert tag in chart_tags
def test_write_rels(self, bar_chart): cw = BarChartWriter(bar_chart) xml = cw.write_rels(1) expected = """ <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartUserShapes" Target="../drawings/drawing1.xml"/> </Relationships> """ diff = compare_xml(xml, expected) assert diff is None, diff
def test_serialised(self, bar_chart, datadir): """Check the serialised file against sample""" cw = BarChartWriter(bar_chart) xml = cw.write() tree = fromstring(xml) chart_schema.assertValid(tree) datadir.chdir() with open("BarChart.xml") as expected: diff = compare_xml(xml, expected.read()) assert diff is None, diff
def test_write_legend(self, bar_chart, root_xml): cw = BarChartWriter(bar_chart) cw._write_legend(root_xml) expected = """ <test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"> <c:legend> <c:legendPos val="r" /><c:layout /> </c:legend> </test>""" xml = tostring(root_xml) diff = compare_xml(xml, expected) assert diff is None, diff
def test_write_chart(self, bar_chart): """check if some characteristic tags of LineChart are there""" cw = BarChartWriter(bar_chart) cw._write_chart() tagnames = [ '{%s}barChart' % CHART_NS, '{%s}valAx' % CHART_NS, '{%s}catAx' % CHART_NS ] root = safe_iterator(cw.root) chart_tags = [e.tag for e in root] for tag in tagnames: assert tag in chart_tags
def test_write_print_settings(self, bar_chart): cw = BarChartWriter(bar_chart) cw._write_print_settings() tagnames = ['test', '{%s}printSettings' % CHART_NS, '{%s}headerFooter' % CHART_NS, '{%s}pageMargins' % CHART_NS, '{%s}pageSetup' % CHART_NS] for e in cw.root: assert e.tag in tagnames if e.tag == "{%s}pageMargins" % CHART_NS: assert e.keys() == list(bar_chart.print_margins.keys()) for k, v in e.items(): assert float(v) == bar_chart.print_margins[k] else: assert e.text == None assert e.attrib == {}
def test_label_no_number_format(self, ten_column_sheet, Reference, Series, BarChart, root_xml): ws = ten_column_sheet for i in range(10): ws.append([i, i]) labels = Reference(ws, (1,1), (1,10)) values = Reference(ws, (1,1), (1,10)) serie = Series(values=values, labels=labels) c = BarChart() c.add_serie(serie) cw = BarChartWriter(c) cw._write_serial(root_xml, c.series[0].labels) expected = """ <test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"> <c:numRef> <c:f>'data'!$A$1:$J$1</c:f> </c:numRef> </test> """ xml = tostring(root_xml) diff = compare_xml(xml, expected) assert diff is None, diff
def test_write_yaxis(self, bar_chart, root_xml): cw = BarChartWriter(bar_chart) cw._write_axis(root_xml, bar_chart.y_axis, '{%s}valAx' % CHART_NS) expected = """ <test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"> <c:valAx> <c:axId val="60873344"/> <c:scaling> <c:orientation val="minMax"/> </c:scaling> <c:axPos val="l"/> <c:majorGridlines/> <c:numFmt formatCode="General" sourceLinked="1"/> <c:tickLblPos val="nextTo"/> <c:crossAx val="60871424"/> <c:crosses val="autoZero"/> <c:crossBetween val="between"/> </c:valAx> </test> """ xml = tostring(root_xml) diff = compare_xml(xml, expected) assert diff is None, diff
def test_write_chart(self, bar_chart): cw = BarChartWriter(bar_chart) cw._write_chart() assert chart_schema.validate(cw.root) expected = """ <c:chartSpace xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"> <c:chart> <c:title> <c:tx> <c:rich> <a:bodyPr/> <a:lstStyle/> <a:p> <a:pPr> <a:defRPr/> </a:pPr> <a:r> <a:rPr lang="en-GB"/> <a:t>TITLE</a:t> </a:r> </a:p> </c:rich> </c:tx> <c:layout/> </c:title> <c:plotArea> <c:layout> <c:manualLayout> <c:layoutTarget val="inner"/> <c:xMode val="edge"/> <c:yMode val="edge"/> <c:x val="0.03375"/> <c:y val="0.31"/> <c:w val="0.6"/> <c:h val="0.6"/> </c:manualLayout> </c:layout> <c:barChart> <c:barDir val="col"/> <c:grouping val="clustered"/> <c:ser> <c:idx val="0"/> <c:order val="0"/> <c:spPr> <a:solidFill> <a:srgbClr val="00FF00"/> </a:solidFill> <a:ln> <a:solidFill> <a:srgbClr val="00FF00"/> </a:solidFill> </a:ln> </c:spPr> <c:val> <c:numRef> <c:f>'data'!$A$1:$A$11</c:f> </c:numRef> </c:val> </c:ser> <c:axId val="60871424"/> <c:axId val="60873344"/> </c:barChart> <c:catAx> <c:axId val="60871424"/> <c:scaling> <c:orientation val="minMax"/> </c:scaling> <c:axPos val="b"/> <c:numFmt formatCode="General" sourceLinked="0"/> <c:tickLblPos val="nextTo"/> <c:crossAx val="60873344"/> <c:crosses val="autoZero"/> <c:auto val="1"/> <c:lblAlgn val="ctr"/> <c:lblOffset val="100"/> </c:catAx> <c:valAx> <c:axId val="60873344"/> <c:scaling> <c:orientation val="minMax"/> </c:scaling> <c:axPos val="l"/> <c:majorGridlines/> <c:numFmt formatCode="General" sourceLinked="1"/> <c:tickLblPos val="nextTo"/> <c:crossAx val="60871424"/> <c:crosses val="autoZero"/> <c:crossBetween val="between"/> </c:valAx> </c:plotArea> <c:legend> <c:legendPos val="r"/> <c:layout/> </c:legend> <c:plotVisOnly val="1"/> </c:chart> </c:chartSpace> """ xml = tostring(cw.root) diff = compare_xml(xml, expected) assert diff is None, diff
def test_no_write_legend(self, bar_chart, root_xml): cw = BarChartWriter(bar_chart) bar_chart.show_legend = False cw._write_legend(root_xml) children = [e for e in root_xml] assert len(children) == 0