comparison markup/tests/input.py @ 207:28bfc6aafab7 trunk

The `XMLParser` now correctly handles unicode input. Closes #43.
author cmlenz
date Tue, 29 Aug 2006 12:14:36 +0000
parents d19e8a2c549e
children fc6b2fb66518
comparison
equal deleted inserted replaced
206:75c9c019de88 207:28bfc6aafab7
50 self.assertEqual(u'elem', tag) 50 self.assertEqual(u'elem', tag)
51 self.assertEqual((u'title', u'baz'), attrib[0]) 51 self.assertEqual((u'title', u'baz'), attrib[0])
52 self.assertEqual((u'id', u'foo'), attrib[1]) 52 self.assertEqual((u'id', u'foo'), attrib[1])
53 self.assertEqual((u'class', u'bar'), attrib[2]) 53 self.assertEqual((u'class', u'bar'), attrib[2])
54 54
55 def test_unicode_input(self):
56 text = u'<div>\u2013</div>'
57 events = list(XMLParser(StringIO(text)))
58 kind, data, pos = events[1]
59 self.assertEqual(Stream.TEXT, kind)
60 self.assertEqual(u'\u2013', data)
61
55 62
56 class HTMLParserTestCase(unittest.TestCase): 63 class HTMLParserTestCase(unittest.TestCase):
57 64
58 def test_text_node_pos_single_line(self): 65 def test_text_node_pos_single_line(self):
59 text = '<elem>foo bar</elem>' 66 text = '<elem>foo bar</elem>'
72 self.assertEqual(Stream.TEXT, kind) 79 self.assertEqual(Stream.TEXT, kind)
73 self.assertEqual(u'foo\nbar', data) 80 self.assertEqual(u'foo\nbar', data)
74 if sys.version_info[:2] >= (2, 4): 81 if sys.version_info[:2] >= (2, 4):
75 self.assertEqual((None, 1, 6), pos) 82 self.assertEqual((None, 1, 6), pos)
76 83
84 def test_unicode_input(self):
85 text = u'<div>\u2013</div>'
86 events = list(HTMLParser(StringIO(text)))
87 kind, data, pos = events[1]
88 self.assertEqual(Stream.TEXT, kind)
89 self.assertEqual(u'\u2013', data)
90
77 91
78 def suite(): 92 def suite():
79 suite = unittest.TestSuite() 93 suite = unittest.TestSuite()
80 suite.addTest(doctest.DocTestSuite(XMLParser.__module__)) 94 suite.addTest(doctest.DocTestSuite(XMLParser.__module__))
81 suite.addTest(unittest.makeSuite(XMLParserTestCase, 'test')) 95 suite.addTest(unittest.makeSuite(XMLParserTestCase, 'test'))
Copyright (C) 2012-2017 Edgewall Software