Exemplo n.º 1
0
class TestBarChartWriter(object):
    """"""
    def setup(self):
        """Setup a worksheet with one column of data and a bar chart"""
        wb = Workbook()
        ws = wb.get_active_sheet()
        ws.title = 'Numbers'
        for i in range(10):
            ws.append([i])
        self.piechart = BarChart()
        self.piechart.add_serie(Serie(Reference(ws, (0, 0), (9, 0))))
        self.cw = BarChartWriter(self.piechart)
        self.root = Element('test')

    def test_write_chart(self):
        """check if some characteristic tags of LineChart are there"""
        self.cw._write_chart(self.root)
        tagnames = ['{%s}barChart' % CHART_NS,
                    '{%s}valAx' % CHART_NS,
                    '{%s}catAx' % CHART_NS]
        root = safe_iterator(self.root)
        chart_tags = [e.tag for e in root]
        for tag in tagnames:
            assert_true(tag in chart_tags, tag)

    def test_serialised(self):
        """Check the serialised file against sample"""
        xml = self.cw.write()
        expected_file = os.path.join(DATADIR, "writer", "expected", "BarChart.xml")
        with open(expected_file) as expected:
            diff = compare_xml(xml, expected.read())
            assert diff is None, diff
Exemplo n.º 2
0
 def test_write_legend(self, bar_chart, root_xml):
     cw = BarChartWriter(bar_chart)
     cw._write_legend(root_xml)
     expected = """<?xml version='1.0' ?><test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:legend><c:legendPos val="r" /><c:layout /></c:legend></test>"""
     xml = get_xml(root_xml)
     diff = compare_xml(xml, expected)
     assert diff is None, diff
Exemplo n.º 3
0
 def test_write_title(self, bar_chart, root_xml):
     cw = BarChartWriter(bar_chart)
     cw._write_title(root_xml)
     expected = """<?xml version='1.0' ?><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 = get_xml(root_xml)
     diff = compare_xml(xml, expected)
     assert diff is None, diff
Exemplo n.º 4
0
 def test_write_xaxis(self, bar_chart, root_xml):
     cw = BarChartWriter(bar_chart)
     cw._write_axis(root_xml, bar_chart.x_axis, '{%s}catAx' % CHART_NS)
     expected = """<?xml version='1.0' ?><test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:catAx><c:axId val="60871424" /><c:scaling><c:orientation val="minMax" /></c:scaling><c:axPos val="b" /><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></test>"""
     xml = get_xml(root_xml)
     diff = compare_xml(xml, expected)
     assert diff is None, diff
Exemplo n.º 5
0
 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 = """<?xml version='1.0' ?><test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:valAx><c:axId val="60873344" /><c:scaling><c:orientation val="minMax" /><c:max val="10.0" /><c:min val="0.0" /></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:majorUnit val="2.0" /></c:valAx></test>"""
     xml = get_xml(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 = """<?xml version='1.0' ?><test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:valAx><c:axId val="60873344" /><c:scaling><c:orientation val="minMax" /><c:max val="10.0" /><c:min val="0.0" /></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:majorUnit val="2" /></c:valAx></test>"""
     xml = tostring(root_xml)
     diff = compare_xml(xml, expected)
     assert diff is None, diff
 def test_write_legend(self, bar_chart, root_xml):
     cw = BarChartWriter(bar_chart)
     cw._write_legend(root_xml)
     expected = """<?xml version='1.0' ?><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
Exemplo n.º 8
0
 def test_write_series(self, bar_chart, root_xml):
     cw = BarChartWriter(bar_chart)
     cw._write_series(root_xml)
     expected = """<?xml version='1.0' ?><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:numCache><c:formatCode>General</c:formatCode><c:ptCount val="11" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt><c:pt idx="10"><c:v>None</c:v></c:pt></c:numCache></c:numRef></c:val></c:ser></test>"""
     xml = get_xml(root_xml)
     diff = compare_xml(xml, expected)
     assert diff is None, diff
 def test_write_title(self, bar_chart, root_xml):
     cw = BarChartWriter(bar_chart)
     cw._write_title(root_xml)
     expected = """<?xml version='1.0' ?><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 = """<?xml version='1.0' ?><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:numCache><c:formatCode>General</c:formatCode><c:ptCount val="11" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt><c:pt idx="10"><c:v></c:v></c:pt></c:numCache></c:numRef></c:val></c:ser></test>"""
     xml = tostring(root_xml)
     diff = compare_xml(xml, expected)
     assert diff is None, diff
 def test_write_xaxis(self, bar_chart, root_xml):
     cw = BarChartWriter(bar_chart)
     cw._write_axis(root_xml, bar_chart.x_axis, '{%s}catAx' % CHART_NS)
     expected = """<?xml version='1.0' ?><test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:catAx><c:axId val="60871424" /><c:scaling><c:orientation val="minMax" /></c:scaling><c:axPos val="b" /><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></test>"""
     xml = tostring(root_xml)
     diff = compare_xml(xml, expected)
     assert diff is None, diff
Exemplo n.º 12
0
 def test_serialised(self, bar_chart_2):
     """Check the serialised file against sample"""
     cw = BarChartWriter(bar_chart_2)
     xml = cw.write()
     tree = fromstring(xml)
     chart_schema.assertValid(tree)
     expected_file = os.path.join(DATADIR, "writer", "expected", "BarChart.xml")
     with open(expected_file) as expected:
         diff = compare_xml(xml, expected.read())
         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:numCache><c:formatCode>General</c:formatCode><c:ptCount val="11" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt><c:pt idx="10"><c:v></c:v></c:pt></c:numCache></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: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:max val="10.0" /><c:min val="0.0" /></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:majorUnit val="2" /></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
Exemplo n.º 14
0
    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:numCache><c:formatCode>General</c:formatCode><c:ptCount val="11" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt><c:pt idx="10"><c:v>None</c:v></c:pt></c:numCache></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: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:max val="10.0" /><c:min val="0.0" /></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:majorUnit val="2.0" /></c:valAx></c:plotArea><c:legend><c:legendPos val="r" /><c:layout /></c:legend><c:plotVisOnly val="1" /></c:chart></c:chartSpace>"""

        xml = get_xml(cw.root)
        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
Exemplo n.º 16
0
 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
Exemplo n.º 17
0
 def test_serialised(self, bar_chart_2):
     """Check the serialised file against sample"""
     cw = BarChartWriter(bar_chart_2)
     xml = cw.write()
     tree = fromstring(xml)
     chart_schema.assertValid(tree)
     expected_file = os.path.join(DATADIR, "writer", "expected",
                                  "BarChart.xml")
     with open(expected_file) as expected:
         diff = compare_xml(xml, expected.read())
         assert diff is None, diff
Exemplo n.º 18
0
 def test_write_chart(self, bar_chart_2):
     """check if some characteristic tags of LineChart are there"""
     cw = BarChartWriter(bar_chart_2)
     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
Exemplo n.º 19
0
 def test_write_chart(self, bar_chart_2):
     """check if some characteristic tags of LineChart are there"""
     cw = BarChartWriter(bar_chart_2)
     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
Exemplo n.º 20
0
 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, (0,0), (0,9))
     values = Reference(ws, (0,0), (0,9))
     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:numCache><c:formatCode>General</c:formatCode><c:ptCount val="10" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt></c:numCache></c:numRef></test>"""
     xml = get_xml(root_xml)
     diff = compare_xml(xml, expected)
     assert diff is None, diff
 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:numCache><c:formatCode>General</c:formatCode><c:ptCount val="10" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt></c:numCache></c:numRef></test>"""
     xml = tostring(root_xml)
     diff = compare_xml(xml, expected)
     assert diff is None, diff
Exemplo n.º 22
0
 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 == {}
Exemplo n.º 23
0
    def test_label_number_format(self, ten_column_sheet, Reference, Series, BarChart):
        ws = ten_column_sheet
        labels = Reference(ws, (1,1), (1,10))
        labels.number_format = 'd-mmm'
        values = Reference(ws, (1,1), (1,10))
        serie = Series(values=values, labels=labels)
        c = BarChart()
        c.add_serie(serie)
        cw = BarChartWriter(c)
        root = Element('test')
        cw._write_serial(root, 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:numCache><c:formatCode>d-mmm</c:formatCode><c:ptCount val="10" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt></c:numCache></c:numRef></test>"""

        xml = get_xml(root)
        diff = compare_xml(xml, expected)
        assert diff is None, diff
Exemplo n.º 24
0
    def test_label_number_format(self, ten_column_sheet, Reference, Series,
                                 BarChart):
        ws = ten_column_sheet
        labels = Reference(ws, (0, 0), (0, 9))
        labels.number_format = 'd-mmm'
        values = Reference(ws, (0, 0), (0, 9))
        serie = Series(values=values, labels=labels)
        c = BarChart()
        c.add_serie(serie)
        cw = BarChartWriter(c)
        root = Element('test')
        cw._write_serial(root, 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:numCache><c:formatCode>d-mmm</c:formatCode><c:ptCount val="10" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt></c:numCache></c:numRef></test>"""

        xml = get_xml(root)
        diff = compare_xml(xml, expected)
        assert diff is None, diff
Exemplo n.º 25
0
    def test_label_number_format(self):
        ws = self.make_worksheet()
        for i in range(10):
            ws.append([i, i])
        labels = Reference(ws, (0,0), (0,9))
        labels.number_format = 'd-mmm'
        values = Reference(ws, (0,0), (0,9))
        serie = Serie(values=values, labels=labels)
        c = BarChart()
        c.add_serie(serie)
        cw = BarChartWriter(c)
        root = Element('test')
        cw._write_serial(root, c._series[0].labels)

        expected = """<?xml version='1.0' ?><test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:numRef><c:f>'data'!$A$1:$J$1</c:f><c:numCache><c:formatCode>d-mmm</c:formatCode><c:ptCount val="10" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt></c:numCache></c:numRef></test>"""

        xml = get_xml(root)
        diff = compare_xml(xml, expected)
        assert diff is None, diff
 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 == {}
Exemplo n.º 27
0
 def setup(self):
     """Setup a worksheet with one column of data and a bar chart"""
     wb = Workbook()
     ws = wb.get_active_sheet()
     ws.title = 'Numbers'
     for i in range(10):
         ws.append([i])
     self.piechart = BarChart()
     self.piechart.add_serie(Serie(Reference(ws, (0, 0), (9, 0))))
     self.cw = BarChartWriter(self.piechart)
     self.root = Element('test')
Exemplo n.º 28
0
    def setup(self):

        wb = Workbook()
        ws = wb.get_active_sheet()
        ws.title = 'data'
        for i in range(10):
            ws.cell(row=i, column=0).value = i
        self.chart = BarChart()
        self.chart.title = 'TITLE'
        self.chart.add_serie(Serie(Reference(ws, (0, 0), (10, 0))))
        self.chart._series[-1].color = Color.GREEN
        self.cw = BarChartWriter(self.chart)
        self.root = Element('test')
Exemplo n.º 29
0
class TestChartWriter(object):

    def setup(self):

        wb = Workbook()
        ws = wb.get_active_sheet()
        ws.title = 'data'
        for i in range(10):
            ws.cell(row=i, column=0).value = i
        self.chart = BarChart()
        self.chart.title = 'TITLE'
        self.chart.add_serie(Serie(Reference(ws, (0, 0), (10, 0))))
        self.chart._series[-1].color = Color.GREEN
        self.cw = BarChartWriter(self.chart)
        self.root = Element('test')

    def make_worksheet(self):

        wb = Workbook()
        ws = wb.get_active_sheet()
        ws.title = 'data'
        ws.append(list(range(10)))
        return ws

    def test_write_title(self):
        self.cw._write_title(self.root)
        expected = """<?xml version='1.0' ?><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 = get_xml(self.root)
        diff = compare_xml(xml, expected)
        assert diff is None, diff

    def test_write_xaxis(self):

        self.cw._write_axis(self.root, self.chart.x_axis, '{%s}catAx' % CHART_NS)
        expected = """<?xml version='1.0' ?><test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:catAx><c:axId val="60871424" /><c:scaling><c:orientation val="minMax" /></c:scaling><c:axPos val="b" /><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></test>"""
        xml = get_xml(self.root)
        diff = compare_xml(xml, expected)
        assert diff is None, diff

    def test_write_yaxis(self):

        self.cw._write_axis(self.root, self.chart.y_axis, '{%s}valAx' % CHART_NS)
        expected = """<?xml version='1.0' ?><test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:valAx><c:axId val="60873344" /><c:scaling><c:orientation val="minMax" /><c:max val="10.0" /><c:min val="0.0" /></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:majorUnit val="2.0" /></c:valAx></test>"""
        xml = get_xml(self.root)
        diff = compare_xml(xml, expected)
        assert diff is None, diff

    def test_write_series(self):

        self.cw._write_series(self.root)
        expected = """<?xml version='1.0' ?><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:numCache><c:formatCode>General</c:formatCode><c:ptCount val="11" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt><c:pt idx="10"><c:v>None</c:v></c:pt></c:numCache></c:numRef></c:val></c:ser></test>"""
        xml = get_xml(self.root)
        diff = compare_xml(xml, expected)
        assert diff is None, diff

    def test_write_legend(self):

        self.cw._write_legend(self.root)
        expected = """<?xml version='1.0' ?><test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:legend><c:legendPos val="r" /><c:layout /></c:legend></test>"""
        xml = get_xml(self.root)
        diff = compare_xml(xml, expected)
        assert diff is None, diff

    def test_no_write_legend(self):

        self.chart.show_legend = False
        self.cw._write_legend(self.root)
        children = [e for e in self.root]
        eq_(len(children), 0)

    def test_write_print_settings(self):
        tagnames = ['test',
                    '{%s}printSettings' % CHART_NS,
                    '{%s}headerFooter' % CHART_NS,
                    '{%s}pageMargins' % CHART_NS,
                    '{%s}pageSetup' % CHART_NS]
        for e in self.root:
            assert_true(e.tag in tagnames)
            if e.tag == "{%s}pageMargins" % CHART_NS:
                eq_(e.keys(), list(self.chart.print_margins.keys()))
                for k, v in e.items():
                    eq_(float(v), self.chart.print_margins[k])
            else:
                eq_(e.text, None)
                eq_(e.attrib, {})

    def test_write_chart(self):
        root = Element('{%s}chartSpace' % CHART_NS)
        self.cw._write_chart(root)
        tree = fromstring(get_xml(root))
        assert_true(chart_schema.validate(tree))

        expected = """<?xml version='1.0' ?><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:numCache><c:formatCode>General</c:formatCode><c:ptCount val="11" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt><c:pt idx="10"><c:v>None</c:v></c:pt></c:numCache></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: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:max val="10.0" /><c:min val="0.0" /></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:majorUnit val="2.0" /></c:valAx></c:plotArea><c:legend><c:legendPos val="r" /><c:layout /></c:legend><c:plotVisOnly val="1" /></c:chart></c:chartSpace>"""

        xml = get_xml(root)
        diff = compare_xml(xml, expected)
        assert diff is None, diff

    def test_write_rels(self):
        xml = self.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_write_no_ascii(self):

        ws = self.make_worksheet()
        ws.append(["D\xc3\xbcsseldorf"]*10)
        serie = Serie(values=Reference(ws, (0,0), (0,9)),
                      legend=Reference(ws, (1,0), (1,9))
                      )
        c = BarChart()
        c.add_serie(serie)
        cw = ChartWriter(c)

    def test_label_no_number_format(self):
        ws = self.make_worksheet()
        for i in range(10):
            ws.append([i, i])
        labels = Reference(ws, (0,0), (0,9))
        values = Reference(ws, (0,0), (0,9))
        serie = Serie(values=values, labels=labels)
        c = BarChart()
        c.add_serie(serie)
        cw = BarChartWriter(c)
        root = Element('test')
        cw._write_serial(root, c._series[0].labels)
        expected = """<?xml version='1.0' ?><test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:numRef><c:f>'data'!$A$1:$J$1</c:f><c:numCache><c:formatCode>General</c:formatCode><c:ptCount val="10" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt></c:numCache></c:numRef></test>"""
        xml = get_xml(root)
        diff = compare_xml(xml, expected)
        assert diff is None, diff

    def test_label_number_format(self):
        ws = self.make_worksheet()
        for i in range(10):
            ws.append([i, i])
        labels = Reference(ws, (0,0), (0,9))
        labels.number_format = 'd-mmm'
        values = Reference(ws, (0,0), (0,9))
        serie = Serie(values=values, labels=labels)
        c = BarChart()
        c.add_serie(serie)
        cw = BarChartWriter(c)
        root = Element('test')
        cw._write_serial(root, c._series[0].labels)

        expected = """<?xml version='1.0' ?><test xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:numRef><c:f>'data'!$A$1:$J$1</c:f><c:numCache><c:formatCode>d-mmm</c:formatCode><c:ptCount val="10" /><c:pt idx="0"><c:v>0</c:v></c:pt><c:pt idx="1"><c:v>1</c:v></c:pt><c:pt idx="2"><c:v>2</c:v></c:pt><c:pt idx="3"><c:v>3</c:v></c:pt><c:pt idx="4"><c:v>4</c:v></c:pt><c:pt idx="5"><c:v>5</c:v></c:pt><c:pt idx="6"><c:v>6</c:v></c:pt><c:pt idx="7"><c:v>7</c:v></c:pt><c:pt idx="8"><c:v>8</c:v></c:pt><c:pt idx="9"><c:v>9</c:v></c:pt></c:numCache></c:numRef></test>"""

        xml = get_xml(root)
        diff = compare_xml(xml, expected)
        assert diff is None, diff
Exemplo n.º 30
0
 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
 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
 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
Exemplo n.º 33
0
 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