def test_new_tbl_generates_correct_xml(self): """CT_Table._new_tbl() returns correct XML""" # setup ------------------------ rows, cols = 2, 3 width, height = 334, 445 xml = ( '<a:tbl %s>\n <a:tblPr firstRow="1" bandRow="1">\n <a:tableSt' 'yleId>{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}</a:tableStyleId>\n ' ' </a:tblPr>\n <a:tblGrid>\n <a:gridCol w="111"/>\n <a:gri' 'dCol w="111"/>\n <a:gridCol w="112"/>\n </a:tblGrid>\n <a:t' 'r h="222">\n <a:tc>\n <a:txBody>\n <a:bodyPr/>\n ' ' <a:lstStyle/>\n <a:p/>\n </a:txBody>\n <' 'a:tcPr/>\n </a:tc>\n <a:tc>\n <a:txBody>\n <a:' 'bodyPr/>\n <a:lstStyle/>\n <a:p/>\n </a:txBod' 'y>\n <a:tcPr/>\n </a:tc>\n <a:tc>\n <a:txBody>\n' ' <a:bodyPr/>\n <a:lstStyle/>\n <a:p/>\n ' ' </a:txBody>\n <a:tcPr/>\n </a:tc>\n </a:tr>\n <a:tr ' 'h="223">\n <a:tc>\n <a:txBody>\n <a:bodyPr/>\n ' ' <a:lstStyle/>\n <a:p/>\n </a:txBody>\n <a:' 'tcPr/>\n </a:tc>\n <a:tc>\n <a:txBody>\n <a:bo' 'dyPr/>\n <a:lstStyle/>\n <a:p/>\n </a:txBody>' '\n <a:tcPr/>\n </a:tc>\n <a:tc>\n <a:txBody>\n ' ' <a:bodyPr/>\n <a:lstStyle/>\n <a:p/>\n ' '</a:txBody>\n <a:tcPr/>\n </a:tc>\n </a:tr>\n</a:tbl>\n' % nsdecls('a') ) # exercise --------------------- tbl = CT_Table.new_tbl(rows, cols, width, height) # verify ----------------------- self.assertEqualLineByLine(xml, tbl)
def it_can_create_a_new_tbl_element_tree(self): """ Indirectly tests that column widths are a proportional split of total width and that row heights a proportional split of total height. """ expected_xml = ( '<a:tbl %s>\n <a:tblPr firstRow="1" bandRow="1">\n <a:tableSt' "yleId>{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}</a:tableStyleId>\n " ' </a:tblPr>\n <a:tblGrid>\n <a:gridCol w="111"/>\n <a:gri' 'dCol w="111"/>\n <a:gridCol w="112"/>\n </a:tblGrid>\n <a:t' 'r h="222">\n <a:tc>\n <a:txBody>\n <a:bodyPr/>\n ' " <a:lstStyle/>\n <a:p/>\n </a:txBody>\n <" "a:tcPr/>\n </a:tc>\n <a:tc>\n <a:txBody>\n <a:" "bodyPr/>\n <a:lstStyle/>\n <a:p/>\n </a:txBod" "y>\n <a:tcPr/>\n </a:tc>\n <a:tc>\n <a:txBody>\n" " <a:bodyPr/>\n <a:lstStyle/>\n <a:p/>\n " " </a:txBody>\n <a:tcPr/>\n </a:tc>\n </a:tr>\n <a:tr " 'h="223">\n <a:tc>\n <a:txBody>\n <a:bodyPr/>\n ' " <a:lstStyle/>\n <a:p/>\n </a:txBody>\n <a:" "tcPr/>\n </a:tc>\n <a:tc>\n <a:txBody>\n <a:bo" "dyPr/>\n <a:lstStyle/>\n <a:p/>\n </a:txBody>" "\n <a:tcPr/>\n </a:tc>\n <a:tc>\n <a:txBody>\n " " <a:bodyPr/>\n <a:lstStyle/>\n <a:p/>\n " "</a:txBody>\n <a:tcPr/>\n </a:tc>\n </a:tr>\n</a:tbl>\n" % nsdecls("a") ) tbl = CT_Table.new_tbl(2, 3, 334, 445) assert tbl.xml == expected_xml
def it_can_create_a_new_tbl_element_tree(self): """ Indirectly tests that column widths are a proportional split of total width and that row heights a proportional split of total height. """ expected_xml = ( '<a:tbl %s>\n <a:tblPr firstRow="1" bandRow="1">\n <a:tableSt' "yleId>{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}</a:tableStyleId>\n " ' </a:tblPr>\n <a:tblGrid>\n <a:gridCol w="111"/>\n <a:gri' 'dCol w="111"/>\n <a:gridCol w="112"/>\n </a:tblGrid>\n <a:t' 'r h="222">\n <a:tc>\n <a:txBody>\n <a:bodyPr/>\n ' " <a:lstStyle/>\n <a:p/>\n </a:txBody>\n <" "a:tcPr/>\n </a:tc>\n <a:tc>\n <a:txBody>\n <a:" "bodyPr/>\n <a:lstStyle/>\n <a:p/>\n </a:txBod" "y>\n <a:tcPr/>\n </a:tc>\n <a:tc>\n <a:txBody>\n" " <a:bodyPr/>\n <a:lstStyle/>\n <a:p/>\n " " </a:txBody>\n <a:tcPr/>\n </a:tc>\n </a:tr>\n <a:tr " 'h="223">\n <a:tc>\n <a:txBody>\n <a:bodyPr/>\n ' " <a:lstStyle/>\n <a:p/>\n </a:txBody>\n <a:" "tcPr/>\n </a:tc>\n <a:tc>\n <a:txBody>\n <a:bo" "dyPr/>\n <a:lstStyle/>\n <a:p/>\n </a:txBody>" "\n <a:tcPr/>\n </a:tc>\n <a:tc>\n <a:txBody>\n " " <a:bodyPr/>\n <a:lstStyle/>\n <a:p/>\n " "</a:txBody>\n <a:tcPr/>\n </a:tc>\n </a:tr>\n</a:tbl>\n" % nsdecls("a")) tbl = CT_Table.new_tbl(2, 3, 334, 445) assert tbl.xml == expected_xml
def new_table_graphicFrame(cls, id_, name, rows, cols, x, y, cx, cy): """ Return a ``<p:graphicFrame>`` element tree populated with a table element. """ graphicFrame = cls.new_graphicFrame(id_, name, x, y, cx, cy) graphicFrame.graphic.graphicData.uri = GRAPHIC_DATA_URI_TABLE graphicFrame.graphic.graphicData.append( CT_Table.new_tbl(rows, cols, cx, cy)) return graphicFrame
def new_table(id_, name, rows, cols, left, top, width, height): """ Return a ``<p:graphicFrame>`` element tree populated with a table element. """ graphicFrame = CT_GraphicalObjectFrame.new_graphicFrame( id_, name, left, top, width, height) # set type of contained graphic to table graphicData = graphicFrame[qn('a:graphic')].graphicData graphicData.set('uri', CT_GraphicalObjectFrame.DATATYPE_TABLE) # add tbl element tree tbl = CT_Table.new_tbl(rows, cols, width, height) graphicData.append(tbl) objectify.deannotate(graphicFrame, cleanup_namespaces=True) return graphicFrame