def test_subobject(self):
        df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph")
        self.textdoc.text.addElement(df)

        subdoc = OpenDocumentText()
        # Here we add the subdocument to the main document. We get back a reference
        # to use in the href.
        subloc = self.textdoc.addObject(subdoc)
        self.assertEqual(subloc,'./Object 1')
        do = draw.Object(href=subloc)
        df.addElement(do)

        subsubdoc = OpenDocumentText()
        subsubloc = subdoc.addObject(subsubdoc)
        self.assertEqual(subsubloc,'./Object 1/Object 1')

        c = unicode(self.textdoc.contentxml(),'UTF-8')
        c.index(u'<office:body><office:text><draw:frame svg:width="476pt" text:anchor-type="paragraph" svg:height="404pt"><draw:object xlink:href="./Object 1"/></draw:frame></office:text></office:body>')
        c.index(u'xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"')
        self.textdoc.save("TEST.odt")
        self.saved = True
        m = _getxmlpart("TEST.odt", "META-INF/manifest.xml")
        m.index('<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="styles.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="content.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="meta.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/styles.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/content.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/Object 1/"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/styles.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/content.xml"/>')
Exemple #2
0
class TestUnicode(unittest.TestCase):
    def setUp(self):
        self.textdoc = OpenDocumentText()
        self.saved = False

    def tearDown(self):
        if self.saved:
            os.unlink("TEST.odt")

    def test_subobject(self):
        df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph")
        self.textdoc.text.addElement(df)

        subdoc = OpenDocumentText()
        # Here we add the subdocument to the main document. We get back a reference
        # to use in the href.
        subloc = self.textdoc.addObject(subdoc)
        self.assertEqual(subloc, "./Object 1")
        do = draw.Object(href=subloc)
        df.addElement(do)

        subsubdoc = OpenDocumentText()
        subsubloc = subdoc.addObject(subsubdoc)
        self.assertEqual(subsubloc, "./Object 1/Object 1")

        c = unicode(self.textdoc.contentxml(), "UTF-8")
        c.index(
            u'<office:body><office:text><draw:frame svg:width="476pt" text:anchor-type="paragraph" svg:height="404pt"><draw:object xlink:href="./Object 1"/></draw:frame></office:text></office:body>'
        )
        c.index(u'xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"')
        self.textdoc.save("TEST.odt")
        self.saved = True
        m = _getxmlpart("TEST.odt", "META-INF/manifest.xml")
        m.index(
            '<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"/>'
        )
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="styles.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="content.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="meta.xml"/>')
        m.index(
            '<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/"/>'
        )
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/styles.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/content.xml"/>')
        m.index(
            '<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/Object 1/"/>'
        )
        m.index(
            '<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/styles.xml"/>'
        )
        m.index(
            '<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/content.xml"/>'
        )
Exemple #3
0
class TestUnicode(unittest.TestCase):

    def setUp(self):
        self.textdoc = OpenDocumentText()
        self.saved = False

    def tearDown(self):
        if self.saved:
            os.unlink("TEST.odt")

    def test_subobject(self):
        df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph")
        self.textdoc.text.addElement(df)

        subdoc = OpenDocumentText()
        # Here we add the subdocument to the main document. We get back a reference
        # to use in the href.
        subloc = self.textdoc.addObject(subdoc)
        self.assertEqual(subloc,'./Object 1')
        do = draw.Object(href=subloc)
        df.addElement(do)

        subsubdoc = OpenDocumentText()
        subsubloc = subdoc.addObject(subsubdoc)
        self.assertEqual(subsubloc,'./Object 1/Object 1')

        c = self.textdoc.contentxml() # contentxml() is supposed to yeld a bytes
        c.index(b'<office:body><office:text><draw:frame ')
        e = ElementParser(c.decode("utf-8"), u'draw:frame')
#       e = ElementParser('<draw:frame svg:width="476pt" text:anchor-type="paragraph" svg:height="404pt">')
        self.assertTrue(e.has_value(u'svg:width',"476pt"))
        self.assertTrue(e.has_value(u'svg:height',"404pt"))
        self.assertTrue(e.has_value(u'text:anchor-type',"paragraph"))
        self.assertFalse(e.has_value(u'svg:height',"476pt"))
        c.index(b'<draw:object xlink:href="./Object 1"/></draw:frame></office:text></office:body>')
        c.index(b'xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"')
        self.textdoc.save(u"TEST.odt")
        self.saved = True
        m = _getxmlpart(u"TEST.odt", u"META-INF/manifest.xml").decode('utf-8')
        assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"'))
        assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"'))
        assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="content.xml"'))
        assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="meta.xml"'))
        assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/"'))
        assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="Object 1/styles.xml"'))
        assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="Object 1/content.xml"'))
        assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/Object 1/"'))
        assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/styles.xml"'))
        assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/content.xml"'))
Exemple #4
0
    def test_subobject(self):
        df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph")
        self.textdoc.text.addElement(df)

        subdoc = OpenDocumentText()
        # Here we add the subdocument to the main document. We get back a reference
        # to use in the href.
        subloc = self.textdoc.addObject(subdoc)
        self.assertEqual(subloc,'./Object 1')
        do = draw.Object(href=subloc)
        df.addElement(do)

        subsubdoc = OpenDocumentText()
        subsubloc = subdoc.addObject(subsubdoc)
        self.assertEqual(subsubloc,'./Object 1/Object 1')

        c = unicode(self.textdoc.contentxml(),'UTF-8')
        c.index(u'<office:body><office:text><draw:frame ')
        e = ElementParser(c, 'draw:frame')
#       e = ElementParser('<draw:frame svg:width="476pt" text:anchor-type="paragraph" svg:height="404pt">')
        self.assertTrue(e.has_value('svg:width',"476pt"))
        self.assertTrue(e.has_value('svg:height',"404pt"))
        self.assertTrue(e.has_value('text:anchor-type',"paragraph"))
        self.assertFalse(e.has_value('svg:height',"476pt"))
        c.index(u'<draw:object xlink:href="./Object 1"/></draw:frame></office:text></office:body>')
        c.index(u'xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"')
        self.textdoc.save("TEST.odt")
        self.saved = True
        m = _getxmlpart("TEST.odt", "META-INF/manifest.xml")
        m.index('<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="styles.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="content.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="meta.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/styles.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/content.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/Object 1/"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/styles.xml"/>')
        m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/content.xml"/>')
Exemple #5
0
    def test_subobject(self):
        df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph")
        self.textdoc.text.addElement(df)

        subdoc = OpenDocumentText()
        # Here we add the subdocument to the main document. We get back a reference
        # to use in the href.
        subloc = self.textdoc.addObject(subdoc)
        self.assertEqual(subloc, './Object 1')
        do = draw.Object(href=subloc)
        df.addElement(do)

        subsubdoc = OpenDocumentText()
        subsubloc = subdoc.addObject(subsubdoc)
        self.assertEqual(subsubloc, './Object 1/Object 1')

        c = self.textdoc.contentxml(
        )  # contentxml() is supposed to yeld a bytes
        c.index(b'<office:body><office:text><draw:frame ')
        e = ElementParser(c.decode("utf-8"), u'draw:frame')
        #       e = ElementParser('<draw:frame svg:width="476pt" text:anchor-type="paragraph" svg:height="404pt">')
        self.assertTrue(e.has_value(u'svg:width', "476pt"))
        self.assertTrue(e.has_value(u'svg:height', "404pt"))
        self.assertTrue(e.has_value(u'text:anchor-type', "paragraph"))
        self.assertFalse(e.has_value(u'svg:height', "476pt"))
        c.index(
            b'<draw:object xlink:href="./Object 1"/></draw:frame></office:text></office:body>'
        )
        c.index(b'xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"')
        self.textdoc.save(u"TEST.odt")
        self.saved = True
        m = _getxmlpart(u"TEST.odt", u"META-INF/manifest.xml").decode('utf-8')
        assert (element_has_attributes(
            m, u'manifest:file-entry',
            u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"'
        ))
        assert (element_has_attributes(
            m, u'manifest:file-entry',
            u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"'
        ))
        assert (element_has_attributes(
            m, u'manifest:file-entry',
            u'manifest:media-type="text/xml" manifest:full-path="content.xml"')
                )
        assert (element_has_attributes(
            m, u'manifest:file-entry',
            u'manifest:media-type="text/xml" manifest:full-path="meta.xml"'))
        assert (element_has_attributes(
            m, u'manifest:file-entry',
            u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/"'
        ))
        assert (element_has_attributes(
            m, u'manifest:file-entry',
            u'manifest:media-type="text/xml" manifest:full-path="Object 1/styles.xml"'
        ))
        assert (element_has_attributes(
            m, u'manifest:file-entry',
            u'manifest:media-type="text/xml" manifest:full-path="Object 1/content.xml"'
        ))
        assert (element_has_attributes(
            m, u'manifest:file-entry',
            u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/Object 1/"'
        ))
        assert (element_has_attributes(
            m, u'manifest:file-entry',
            u'manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/styles.xml"'
        ))
        assert (element_has_attributes(
            m, u'manifest:file-entry',
            u'manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/content.xml"'
        ))
Exemple #6
0
class Doc:
    def __init__(self, filename, language="de", curesec_brand=True):

        # create document tree
        self.document = OpenDocumentText()

        # set members
        self.filename = filename
        self.language = language

        # some basic report details
        self.project = "XY-932521-OMEGA"
        self.date = TODAY
        self.dateStart = TODAY
        self.dateEnd = TODAY
        self.author = "Curesec GmbH"
        self.authorAddress = "Berliner Allee 170"
        self.clientName = "Name des Kunden"
        self.clientAddress = "Adresse des Kunden"
        self.version = "0.1"

        # define style and add user information
        self.__style = DocumentStyle()
        self.__style.defineCuresecStyles(self.document, self.language)

        if curesec_brand:
            self.__style.addUserfieldsToBody(self.document,
                                             projekt=self.project,
                                             date=self.date,
                                             dateStart=self.dateStart,
                                             dateEnd=self.dateEnd,
                                             author=self.author,
                                             authorAddress=self.authorAddress,
                                             clientName=self.clientName,
                                             clientAddress=self.clientAddress,
                                             version=self.version)
            self.setHeader()
            self.setFooter()
            self.setDeckblatt()
            self.setVertragspartner()
            self.setTableOfContent()

    def setTableOfContent(self):
        self.__style.addTableOfContent(self.document)

    def setDeckblatt(self):
        self.__style.addDeckblatt(self.document)

    def setVertragspartner(self):
        self.__style.addVertragspartner(self.document)

    def setFooter(self):
        self.__style.setFooterData(self.document)

    def setHeader(self):
        self.__style.setHeaderData(self.document, self.project, self.date,
                                   self.version)

    def save(self):
        # save document
        self.document.save(self.filename)

    def add(self, element):
        if element is not None:
            self.document.text.addElement(element)

    def addAsObject(self, element):
        if element is not None:
            return self.document.addObject(element)
class Doc:

    def __init__(self, filename, language="de", curesec_brand=True):

        # create document tree
        self.document = OpenDocumentText()

        # set members
        self.filename = filename
        self.language = language

        # some basic report details
        self.project = "XY-932521-OMEGA"
        self.date = TODAY
        self.dateStart = TODAY
        self.dateEnd = TODAY
        self.author = "Curesec GmbH"
        self.authorAddress = "Berliner Allee 170"
        self.clientName = "Name des Kunden"
        self.clientAddress = "Adresse des Kunden"
        self.version = "0.1"

        # define style and add user information
        self.__style = DocumentStyle()
        self.__style.defineCuresecStyles(self.document, self.language)

        if curesec_brand:
            self.__style.addUserfieldsToBody(self.document,
                                             projekt=self.project,
                                             date=self.date,
                                             dateStart=self.dateStart,
                                             dateEnd=self.dateEnd,
                                             author=self.author,
                                             authorAddress=self.authorAddress,
                                             clientName=self.clientName,
                                             clientAddress=self.clientAddress,
                                             version=self.version
                                             )
            self.setHeader()
            self.setFooter()
            self.setDeckblatt()
            self.setVertragspartner()
            self.setTableOfContent()

    def setTableOfContent(self):
        self.__style.addTableOfContent(self.document)

    def setDeckblatt(self):
        self.__style.addDeckblatt(self.document)

    def setVertragspartner(self):
        self.__style.addVertragspartner(self.document)

    def setFooter(self):
        self.__style.setFooterData(self.document)

    def setHeader(self):
        self.__style.setHeaderData(self.document,
                                   self.project,
                                   self.date,
                                   self.version)

    def save(self):
        # save document
        self.document.save(self.filename)

    def add(self, element):
        if element is not None:
            self.document.text.addElement(element)

    def addAsObject(self, element):
        if element is not None:
            return self.document.addObject(element)
Exemple #8
0
    # These represent the data. Six rows in three columns
    mychart.values = (
        ('','Expense','Revenue'),
        ('Counterfeit',1000,1500),
        ('Murder',1100,1150),
        ('Prostitution',3200,2350),
        ('Blackmail',1100,1150),
        ('Larceny',1000,1750)
    )
    mychart.datasourcehaslabels = "both"
    mychart(chartdoc)

    # Create the containg document
    textdoc = OpenDocumentText()
    # Create a paragraph to contain the frame. You can put the frame directly
    # as a child og textdoc.text, but both Kword and OOo has problems wiht
    # this approach.
    p = text.P()
    textdoc.text.addElement(p)
    # Create the frame.
    df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph")
    p.addElement(df)

    # Here we add the subdocument to the main document. We get back a reference
    # to use in the href.
    objectloc = textdoc.addObject(chartdoc)
    do = draw.Object(href=objectloc)
    # Put the object inside the frame
    df.addElement(do)
    textdoc.save("spectre-balance", True)
Exemple #9
0
    mychart = BarChart()
    mychart.title = "SPECTRE"
    mychart.subtitle = "SPecial Executive for Counter-intelligence, Terrorism, Revenge and Extortion"
    mychart.x_axis = "Divisions"
    mychart.y_axis = u"€ (thousand)"
    # These represent the data. Six rows in three columns
    mychart.values = (('', 'Expense', 'Revenue'), ('Counterfeit', 1000, 1500),
                      ('Murder', 1100, 1150), ('Prostitution', 3200, 2350),
                      ('Blackmail', 1100, 1150), ('Larceny', 1000, 1750))
    mychart.datasourcehaslabels = "both"
    mychart(chartdoc)

    # Create the containg document
    textdoc = OpenDocumentText()
    # Create a paragraph to contain the frame. You can put the frame directly
    # as a child og textdoc.text, but both Kword and OOo has problems wiht
    # this approach.
    p = text.P()
    textdoc.text.addElement(p)
    # Create the frame.
    df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph")
    p.addElement(df)

    # Here we add the subdocument to the main document. We get back a reference
    # to use in the href.
    objectloc = textdoc.addObject(chartdoc)
    do = draw.Object(href=objectloc)
    # Put the object inside the frame
    df.addElement(do)
    textdoc.save("spectre-balance", True)