cmlenz@1: # -*- coding: utf-8 -*- cmlenz@1: # cmlenz@66: # Copyright (C) 2006 Edgewall Software cmlenz@1: # All rights reserved. cmlenz@1: # cmlenz@1: # This software is licensed as described in the file COPYING, which cmlenz@1: # you should have received as part of this distribution. The terms cmlenz@66: # are also available at http://markup.edgewall.org/wiki/License. cmlenz@1: # cmlenz@1: # This software consists of voluntary contributions made by many cmlenz@1: # individuals. For the exact contribution history, see the revision cmlenz@66: # history and logs, available at http://markup.edgewall.org/log/. cmlenz@1: cmlenz@1: import doctest cmlenz@1: import unittest cmlenz@1: cmlenz@18: from markup.core import * cmlenz@147: from markup.input import XML, ParseError cmlenz@147: cmlenz@147: cmlenz@147: class StreamTestCase(unittest.TestCase): cmlenz@147: cmlenz@147: def test_render_utf8(self): cmlenz@147: xml = XML('
  • Über uns
  • ') cmlenz@147: self.assertEqual('
  • Über uns
  • ', xml.render()) cmlenz@147: cmlenz@147: def test_render_unicode(self): cmlenz@147: xml = XML('
  • Über uns
  • ') cmlenz@147: self.assertEqual(u'
  • Über uns
  • ', xml.render(encoding=None)) cmlenz@147: cmlenz@147: def test_render_ascii(self): cmlenz@147: xml = XML('
  • Über uns
  • ') cmlenz@147: self.assertEqual('
  • Über uns
  • ', xml.render(encoding='ascii')) cmlenz@1: cmlenz@1: cmlenz@1: class MarkupTestCase(unittest.TestCase): cmlenz@1: cmlenz@116: def test_repr(self): cmlenz@116: markup = Markup('foo') cmlenz@116: self.assertEquals('', repr(markup)) cmlenz@116: cmlenz@1: def test_escape(self): cmlenz@1: markup = escape('"&"') cmlenz@1: assert isinstance(markup, Markup) cmlenz@1: self.assertEquals('<b>"&"</b>', markup) cmlenz@1: cmlenz@1: def test_escape_noquotes(self): cmlenz@1: markup = escape('"&"', quotes=False) cmlenz@1: assert isinstance(markup, Markup) cmlenz@1: self.assertEquals('<b>"&"</b>', markup) cmlenz@1: cmlenz@1: def test_unescape_markup(self): cmlenz@1: string = '"&"' cmlenz@1: markup = Markup.escape(string) cmlenz@1: assert isinstance(markup, Markup) cmlenz@1: self.assertEquals(string, unescape(markup)) cmlenz@1: cmlenz@1: def test_add_str(self): cmlenz@1: markup = Markup('foo') + '
    ' cmlenz@1: assert isinstance(markup, Markup) cmlenz@1: self.assertEquals('foo<br/>', markup) cmlenz@1: cmlenz@1: def test_add_markup(self): cmlenz@1: markup = Markup('foo') + Markup('
    ') cmlenz@1: assert isinstance(markup, Markup) cmlenz@1: self.assertEquals('foo
    ', markup) cmlenz@1: cmlenz@1: def test_add_reverse(self): cmlenz@1: markup = 'foo' + Markup('bar') cmlenz@1: assert isinstance(markup, unicode) cmlenz@1: self.assertEquals('foobar', markup) cmlenz@1: cmlenz@1: def test_mod(self): cmlenz@1: markup = Markup('%s') % '&' cmlenz@1: assert isinstance(markup, Markup) cmlenz@1: self.assertEquals('&', markup) cmlenz@1: cmlenz@1: def test_mod_multi(self): cmlenz@1: markup = Markup('%s %s') % ('&', 'boo') cmlenz@1: assert isinstance(markup, Markup) cmlenz@1: self.assertEquals('& boo', markup) cmlenz@1: cmlenz@1: def test_mul(self): cmlenz@1: markup = Markup('foo') * 2 cmlenz@1: assert isinstance(markup, Markup) cmlenz@1: self.assertEquals('foofoo', markup) cmlenz@1: cmlenz@1: def test_join(self): cmlenz@1: markup = Markup('
    ').join(['foo', '', Markup('')]) cmlenz@1: assert isinstance(markup, Markup) cmlenz@1: self.assertEquals('foo
    <bar />
    ', markup) cmlenz@1: cmlenz@1: def test_stripentities_all(self): cmlenz@1: markup = Markup('& j').stripentities() cmlenz@1: assert isinstance(markup, Markup) cmlenz@1: self.assertEquals('& j', markup) cmlenz@1: cmlenz@1: def test_stripentities_keepxml(self): cmlenz@116: markup = Markup('& j').stripentities(keepxmlentities=True) cmlenz@1: assert isinstance(markup, Markup) cmlenz@116: self.assertEquals('& j', markup) cmlenz@1: cmlenz@1: def test_striptags_empty(self): cmlenz@1: markup = Markup('
    ').striptags() cmlenz@1: assert isinstance(markup, Markup) cmlenz@1: self.assertEquals('', markup) cmlenz@1: cmlenz@1: def test_striptags_mid(self): cmlenz@1: markup = Markup('fo
    o
    ').striptags() cmlenz@1: assert isinstance(markup, Markup) cmlenz@1: self.assertEquals('foo', markup) cmlenz@1: cmlenz@1: cmlenz@1: def suite(): cmlenz@1: suite = unittest.TestSuite() cmlenz@147: suite.addTest(unittest.makeSuite(StreamTestCase, 'test')) cmlenz@1: suite.addTest(unittest.makeSuite(MarkupTestCase, 'test')) cmlenz@18: suite.addTest(doctest.DocTestSuite(Markup.__module__)) cmlenz@1: return suite cmlenz@1: cmlenz@1: if __name__ == '__main__': cmlenz@1: unittest.main(defaultTest='suite')