Mercurial > genshi > genshi-test
comparison genshi/tests/input.py @ 902:09cc3627654c experimental-inline
Sync `experimental/inline` branch with [source:trunk@1126].
author | cmlenz |
---|---|
date | Fri, 23 Apr 2010 21:08:26 +0000 |
parents | 1837f39efd6f |
children |
comparison
equal
deleted
inserted
replaced
830:de82830f8816 | 902:09cc3627654c |
---|---|
1 # -*- coding: utf-8 -*- | 1 # -*- coding: utf-8 -*- |
2 # | 2 # |
3 # Copyright (C) 2006 Edgewall Software | 3 # Copyright (C) 2006-2009 Edgewall Software |
4 # All rights reserved. | 4 # All rights reserved. |
5 # | 5 # |
6 # This software is licensed as described in the file COPYING, which | 6 # This software is licensed as described in the file COPYING, which |
7 # you should have received as part of this distribution. The terms | 7 # you should have received as part of this distribution. The terms |
8 # are also available at http://genshi.edgewall.org/wiki/License. | 8 # are also available at http://genshi.edgewall.org/wiki/License. |
25 def test_text_node_pos_single_line(self): | 25 def test_text_node_pos_single_line(self): |
26 text = '<elem>foo bar</elem>' | 26 text = '<elem>foo bar</elem>' |
27 events = list(XMLParser(StringIO(text))) | 27 events = list(XMLParser(StringIO(text))) |
28 kind, data, pos = events[1] | 28 kind, data, pos = events[1] |
29 self.assertEqual(Stream.TEXT, kind) | 29 self.assertEqual(Stream.TEXT, kind) |
30 self.assertEqual(u'foo bar', data) | 30 self.assertEqual('foo bar', data) |
31 self.assertEqual((None, 1, 6), pos) | 31 self.assertEqual((None, 1, 6), pos) |
32 | 32 |
33 def test_text_node_pos_multi_line(self): | 33 def test_text_node_pos_multi_line(self): |
34 text = '''<elem>foo | 34 text = '''<elem>foo |
35 bar</elem>''' | 35 bar</elem>''' |
36 events = list(XMLParser(StringIO(text))) | 36 events = list(XMLParser(StringIO(text))) |
37 kind, data, pos = events[1] | 37 kind, data, pos = events[1] |
38 self.assertEqual(Stream.TEXT, kind) | 38 self.assertEqual(Stream.TEXT, kind) |
39 self.assertEqual(u'foo\nbar', data) | 39 self.assertEqual('foo\nbar', data) |
40 self.assertEqual((None, 1, -1), pos) | 40 self.assertEqual((None, 1, -1), pos) |
41 | 41 |
42 def test_element_attribute_order(self): | 42 def test_element_attribute_order(self): |
43 text = '<elem title="baz" id="foo" class="bar" />' | 43 text = '<elem title="baz" id="foo" class="bar" />' |
44 events = list(XMLParser(StringIO(text))) | 44 events = list(XMLParser(StringIO(text))) |
45 kind, data, pos = events[0] | 45 kind, data, pos = events[0] |
46 self.assertEqual(Stream.START, kind) | 46 self.assertEqual(Stream.START, kind) |
47 tag, attrib = data | 47 tag, attrib = data |
48 self.assertEqual(u'elem', tag) | 48 self.assertEqual('elem', tag) |
49 self.assertEqual((u'title', u'baz'), attrib[0]) | 49 self.assertEqual(('title', 'baz'), attrib[0]) |
50 self.assertEqual((u'id', u'foo'), attrib[1]) | 50 self.assertEqual(('id', 'foo'), attrib[1]) |
51 self.assertEqual((u'class', u'bar'), attrib[2]) | 51 self.assertEqual(('class', 'bar'), attrib[2]) |
52 | 52 |
53 def test_unicode_input(self): | 53 def test_unicode_input(self): |
54 text = u'<div>\u2013</div>' | 54 text = u'<div>\u2013</div>' |
55 events = list(XMLParser(StringIO(text))) | 55 events = list(XMLParser(StringIO(text))) |
56 kind, data, pos = events[1] | 56 kind, data, pos = events[1] |
118 def test_text_node_pos_single_line(self): | 118 def test_text_node_pos_single_line(self): |
119 text = '<elem>foo bar</elem>' | 119 text = '<elem>foo bar</elem>' |
120 events = list(HTMLParser(StringIO(text))) | 120 events = list(HTMLParser(StringIO(text))) |
121 kind, data, pos = events[1] | 121 kind, data, pos = events[1] |
122 self.assertEqual(Stream.TEXT, kind) | 122 self.assertEqual(Stream.TEXT, kind) |
123 self.assertEqual(u'foo bar', data) | 123 self.assertEqual('foo bar', data) |
124 self.assertEqual((None, 1, 6), pos) | 124 self.assertEqual((None, 1, 6), pos) |
125 | 125 |
126 def test_text_node_pos_multi_line(self): | 126 def test_text_node_pos_multi_line(self): |
127 text = '''<elem>foo | 127 text = '''<elem>foo |
128 bar</elem>''' | 128 bar</elem>''' |
129 events = list(HTMLParser(StringIO(text))) | 129 events = list(HTMLParser(StringIO(text))) |
130 kind, data, pos = events[1] | 130 kind, data, pos = events[1] |
131 self.assertEqual(Stream.TEXT, kind) | 131 self.assertEqual(Stream.TEXT, kind) |
132 self.assertEqual(u'foo\nbar', data) | 132 self.assertEqual('foo\nbar', data) |
133 self.assertEqual((None, 1, 6), pos) | 133 self.assertEqual((None, 1, 6), pos) |
134 | 134 |
135 def test_input_encoding_text(self): | 135 def test_input_encoding_text(self): |
136 text = u'<div>\xf6</div>'.encode('iso-8859-1') | 136 text = u'<div>\xf6</div>'.encode('iso-8859-1') |
137 events = list(HTMLParser(StringIO(text), encoding='iso-8859-1')) | 137 events = list(HTMLParser(StringIO(text), encoding='iso-8859-1')) |
172 def test_processing_instruction(self): | 172 def test_processing_instruction(self): |
173 text = '<?php echo "Foobar" ?>' | 173 text = '<?php echo "Foobar" ?>' |
174 events = list(HTMLParser(StringIO(text))) | 174 events = list(HTMLParser(StringIO(text))) |
175 kind, (target, data), pos = events[0] | 175 kind, (target, data), pos = events[0] |
176 self.assertEqual(Stream.PI, kind) | 176 self.assertEqual(Stream.PI, kind) |
177 self.assertEqual(u'php', target) | 177 self.assertEqual('php', target) |
178 self.assertEqual(u'echo "Foobar"', data) | 178 self.assertEqual('echo "Foobar"', data) |
179 | 179 |
180 def test_xmldecl(self): | 180 def test_xmldecl(self): |
181 text = '<?xml version="1.0" ?><root />' | 181 text = '<?xml version="1.0" ?><root />' |
182 events = list(XMLParser(StringIO(text))) | 182 events = list(XMLParser(StringIO(text))) |
183 kind, (version, encoding, standalone), pos = events[0] | 183 kind, (version, encoding, standalone), pos = events[0] |
184 self.assertEqual(Stream.XML_DECL, kind) | 184 self.assertEqual(Stream.XML_DECL, kind) |
185 self.assertEqual(u'1.0', version) | 185 self.assertEqual('1.0', version) |
186 self.assertEqual(None, encoding) | 186 self.assertEqual(None, encoding) |
187 self.assertEqual(-1, standalone) | 187 self.assertEqual(-1, standalone) |
188 | 188 |
189 def test_xmldecl_encoding(self): | 189 def test_xmldecl_encoding(self): |
190 text = '<?xml version="1.0" encoding="utf-8" ?><root />' | 190 text = '<?xml version="1.0" encoding="utf-8" ?><root />' |
191 events = list(XMLParser(StringIO(text))) | 191 events = list(XMLParser(StringIO(text))) |
192 kind, (version, encoding, standalone), pos = events[0] | 192 kind, (version, encoding, standalone), pos = events[0] |
193 self.assertEqual(Stream.XML_DECL, kind) | 193 self.assertEqual(Stream.XML_DECL, kind) |
194 self.assertEqual(u'1.0', version) | 194 self.assertEqual('1.0', version) |
195 self.assertEqual(u'utf-8', encoding) | 195 self.assertEqual('utf-8', encoding) |
196 self.assertEqual(-1, standalone) | 196 self.assertEqual(-1, standalone) |
197 | 197 |
198 def test_xmldecl_standalone(self): | 198 def test_xmldecl_standalone(self): |
199 text = '<?xml version="1.0" standalone="yes" ?><root />' | 199 text = '<?xml version="1.0" standalone="yes" ?><root />' |
200 events = list(XMLParser(StringIO(text))) | 200 events = list(XMLParser(StringIO(text))) |
201 kind, (version, encoding, standalone), pos = events[0] | 201 kind, (version, encoding, standalone), pos = events[0] |
202 self.assertEqual(Stream.XML_DECL, kind) | 202 self.assertEqual(Stream.XML_DECL, kind) |
203 self.assertEqual(u'1.0', version) | 203 self.assertEqual('1.0', version) |
204 self.assertEqual(None, encoding) | 204 self.assertEqual(None, encoding) |
205 self.assertEqual(1, standalone) | 205 self.assertEqual(1, standalone) |
206 | 206 |
207 def test_processing_instruction_trailing_qmark(self): | 207 def test_processing_instruction_trailing_qmark(self): |
208 text = '<?php echo "Foobar" ??>' | 208 text = '<?php echo "Foobar" ??>' |
209 events = list(HTMLParser(StringIO(text))) | 209 events = list(HTMLParser(StringIO(text))) |
210 kind, (target, data), pos = events[0] | 210 kind, (target, data), pos = events[0] |
211 self.assertEqual(Stream.PI, kind) | 211 self.assertEqual(Stream.PI, kind) |
212 self.assertEqual(u'php', target) | 212 self.assertEqual('php', target) |
213 self.assertEqual(u'echo "Foobar" ?', data) | 213 self.assertEqual('echo "Foobar" ?', data) |
214 | 214 |
215 def test_out_of_order_tags1(self): | 215 def test_out_of_order_tags1(self): |
216 text = '<span><b>Foobar</span></b>' | 216 text = '<span><b>Foobar</span></b>' |
217 events = list(HTMLParser(StringIO(text))) | 217 events = list(HTMLParser(StringIO(text))) |
218 self.assertEqual(5, len(events)) | 218 self.assertEqual(5, len(events)) |