| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # Copyright (C) 2007 Søren Roug, European Environment Agency
- #
- # This is free software. You may redistribute it under the terms
- # of the Apache license and the GNU General Public License Version
- # 2 or at your option any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public
- # License along with this program; if not, write to the Free Software
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- #
- # Contributor(s):
- #
- import unittest, os, os.path
- from odf.opendocument import OpenDocumentText
- from odf import style, text
- from odf.text import P, H, LineBreak
- from odf import odf2moinmoin
- class TestSimple(unittest.TestCase):
- def setUp(self):
- textdoc = OpenDocumentText()
- p = P(text=u"Hello World!")
- textdoc.text.addElement(p)
- textdoc.save(u"TEST.odt")
- self.saved = True
- def tearDown(self):
- if self.saved:
- os.unlink(u"TEST.odt")
- def test_simple(self):
- result = odf2moinmoin.ODF2MoinMoin(u"TEST.odt")
- self.assertEqual(u'Hello World!\n', result.toString())
- class TestHeadings(unittest.TestCase):
- saved = False
- def tearDown(self):
- if self.saved:
- os.unlink(u"TEST.odt")
- def test_headings(self):
- textdoc = OpenDocumentText()
- textdoc.text.addElement(H(outlinelevel=1, text=u"Heading 1"))
- textdoc.text.addElement(P(text=u"Hello World!"))
- textdoc.text.addElement(H(outlinelevel=2, text=u"Heading 2"))
- textdoc.save(u"TEST.odt")
- self.saved = True
- result = odf2moinmoin.ODF2MoinMoin(u"TEST.odt")
- self.assertEqual(u'= Heading 1 =\n\nHello World!\n== Heading 2 ==\n\n', result.toString())
- def test_linebreak(self):
- textdoc = OpenDocumentText()
- p = P(text=u"Hello World!")
- textdoc.text.addElement(p)
- p.addElement(LineBreak())
- p.addText(u"Line 2")
- textdoc.save(u"TEST.odt")
- self.saved = True
- result = odf2moinmoin.ODF2MoinMoin(u"TEST.odt")
- self.assertEqual(u'Hello World![[BR]]Line 2\n', result.toString())
- class TestExampleDocs(unittest.TestCase):
- def test_twolevellist(self):
- twolevellist_odt = os.path.join(
- os.path.dirname(__file__), u"examples", u"twolevellist.odt")
- result = odf2moinmoin.ODF2MoinMoin(twolevellist_odt)
- #FIXME: Item c must only have one newline before
- self.assertEqual(u"Line 1\n * Item A\n * Item B\n * Subitem B.1\n * '''Subitem B.2 (bold)'''\n\n * Item C\n\nLine 4\n", result.toString())
- def test_simplestyles(self):
- """ The simplestyles.odt has BOLD set in the paragraph style which is
- then turned OFF in the text styles. That is difficult to implement
- in MoinMoin, and currently ignored.
- """
- simplestyles_odt = os.path.join(
- os.path.dirname(__file__), u"examples", u"simplestyles.odt")
- result = odf2moinmoin.ODF2MoinMoin(simplestyles_odt)
- # The correct expected:
- #expected = "\nPlain text\n\n'''Bold'''\n\n''Italic''\n\n'''''Bold italic'''''\n\n__Underline__\n\n''__Underline italic__''\n\n'''''__Underline bold italic__'''''\n\nKm^2^ - superscript\n\nH,,2,,O - subscript\n\n~~Strike-through~~\n"
- # The simple-minded expected
- expected = u"Plain text\n\n'''Bold'''\n\n'''''Italic'''''\n\n'''''Bold italic'''''\n\n'''''__Underline__'''''\n\n'''''__Underline italic__'''''\n\n'''''__Underline bold italic__'''''\n\nKm^2^ - superscript\n\nH,,2,,O - subscript\n\n\n"
- self.assertEqual(expected, result.toString())
- def test_parastyles(self):
- parastyles_odt = os.path.join(
- os.path.dirname(__file__), u"examples", u"parastyles.odt")
- result = odf2moinmoin.ODF2MoinMoin(parastyles_odt)
- expected = u"Plain text\n\n'''Bold'''\n\n''Italic''\n\n'''''Bold italic'''''\n\n__Underline__\n\n''__Underline italic__''\n\n'''''__Underline bold italic__'''''\n\nKm^2^ - superscript\n\nH,,2,,O - subscript\n\n~~Strike-through~~\n"
- self.assertEqual(expected, result.toString())
- def test_simplelist(self):
- simplelist_odt = os.path.join(
- os.path.dirname(__file__), u"examples", u"simplelist.odt")
- result = odf2moinmoin.ODF2MoinMoin(simplelist_odt)
- self.assertEqual(u"Line 1\n * Item A\n * Item B\n\nLine 4\n", result.toString())
- def test_simpletable(self):
- simpletable_odt = os.path.join(
- os.path.dirname(__file__), u"examples", u"simpletable.odt")
- result = odf2moinmoin.ODF2MoinMoin(simpletable_odt)
- self.assertEqual(u"\n||Cell 1||Cell 2||\n||'''Cell 3 (bold)'''||''Cell 4 (italic)''||\n", result.toString())
- if __name__ == '__main__':
- unittest.main()
|