Mercurial > genshi > mirror
comparison markup/tests/output.py @ 123:10279d2eeec9 trunk
Fix for #18: whitespace in space-sensitive elements such as `<pre>` and `<textarea>` is now preserved.
author | cmlenz |
---|---|
date | Thu, 03 Aug 2006 14:49:22 +0000 |
parents | 71f3db26eecb |
children | 520a5b7dd6d2 |
comparison
equal
deleted
inserted
replaced
122:6c5c6f67d3e8 | 123:10279d2eeec9 |
---|---|
14 import doctest | 14 import doctest |
15 import unittest | 15 import unittest |
16 import sys | 16 import sys |
17 | 17 |
18 from markup.core import Stream | 18 from markup.core import Stream |
19 from markup.output import DocType, XMLSerializer | 19 from markup.input import HTML |
20 from markup.output import DocType, XMLSerializer, XHTMLSerializer, \ | |
21 HTMLSerializer | |
20 | 22 |
21 | 23 |
22 class XMLSerializerTestCase(unittest.TestCase): | 24 class XMLSerializerTestCase(unittest.TestCase): |
23 | 25 |
24 def test_doctype_in_stream(self): | 26 def test_doctype_in_stream(self): |
77 stream = Stream([(Stream.PI, ('python', 'x = 2'), ('?', -1, -1))]) | 79 stream = Stream([(Stream.PI, ('python', 'x = 2'), ('?', -1, -1))]) |
78 output = stream.render(XMLSerializer) | 80 output = stream.render(XMLSerializer) |
79 self.assertEqual('<?python x = 2?>', output) | 81 self.assertEqual('<?python x = 2?>', output) |
80 | 82 |
81 | 83 |
84 class XHTMLSerializerTestCase(unittest.TestCase): | |
85 | |
86 def test_textarea_whitespace(self): | |
87 content = '\nHey there. \n\n I am indented.\n' | |
88 stream = HTML('<textarea name="foo">%s</textarea>' % content) | |
89 output = stream.render(XHTMLSerializer) | |
90 self.assertEqual('<textarea name="foo">%s</textarea>' % content, output) | |
91 | |
92 def test_xml_space(self): | |
93 text = '<foo xml:space="preserve"> Do not mess \n\n with me </foo>' | |
94 output = HTML(text).render(XHTMLSerializer) | |
95 self.assertEqual(text, output) | |
96 | |
97 | |
98 class HTMLSerializerTestCase(unittest.TestCase): | |
99 | |
100 def test_xml_space(self): | |
101 text = '<foo xml:space="preserve"> Do not mess \n\n with me </foo>' | |
102 output = HTML(text).render(HTMLSerializer) | |
103 self.assertEqual('<foo> Do not mess \n\n with me </foo>', output) | |
104 | |
105 | |
82 def suite(): | 106 def suite(): |
83 suite = unittest.TestSuite() | 107 suite = unittest.TestSuite() |
84 suite.addTest(unittest.makeSuite(XMLSerializerTestCase, 'test')) | 108 suite.addTest(unittest.makeSuite(XMLSerializerTestCase, 'test')) |
109 suite.addTest(unittest.makeSuite(XHTMLSerializerTestCase, 'test')) | |
110 suite.addTest(unittest.makeSuite(HTMLSerializerTestCase, 'test')) | |
85 suite.addTest(doctest.DocTestSuite(XMLSerializer.__module__)) | 111 suite.addTest(doctest.DocTestSuite(XMLSerializer.__module__)) |
86 return suite | 112 return suite |
87 | 113 |
88 if __name__ == '__main__': | 114 if __name__ == '__main__': |
89 unittest.main(defaultTest='suite') | 115 unittest.main(defaultTest='suite') |