changeset 858:df860bdad9ca

Yet more 2to3 diff size reduction.
author cmlenz
date Thu, 12 Nov 2009 16:23:53 +0000
parents 24733a5854d9
children fbe34d12acde
files genshi/filters/tests/i18n.py genshi/template/tests/text.py genshi/template/text.py genshi/tests/builder.py
diffstat 4 files changed, 111 insertions(+), 113 deletions(-) [+]
line wrap: on
line diff
--- a/genshi/filters/tests/i18n.py
+++ b/genshi/filters/tests/i18n.py
@@ -88,7 +88,7 @@
         translator = Translator(extract_text=False)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((3, 'ngettext', (u'Singular', u'Plural', None), []),
+        self.assertEqual((3, 'ngettext', ('Singular', 'Plural', None), []),
                          messages[0])
 
     def test_extract_plural_form(self):
@@ -98,7 +98,7 @@
         translator = Translator()
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((2, 'ngettext', (u'Singular', u'Plural', None), []),
+        self.assertEqual((2, 'ngettext', ('Singular', 'Plural', None), []),
                          messages[0])
 
     def test_extract_funky_plural_form(self):
@@ -126,7 +126,7 @@
         translator = Translator()
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((2, None, u'Foo', []), messages[0])
+        self.assertEqual((2, None, 'Foo', []), messages[0])
 
     def test_extract_attribute_expr(self):
         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/">
@@ -135,7 +135,7 @@
         translator = Translator()
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((2, '_', u'Save', []), messages[0])
+        self.assertEqual((2, '_', 'Save', []), messages[0])
 
     def test_extract_non_included_attribute_interpolated(self):
         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/">
@@ -144,7 +144,7 @@
         translator = Translator()
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((2, None, u'Foo', []), messages[0])
+        self.assertEqual((2, None, 'Foo', []), messages[0])
 
     def test_extract_text_from_sub(self):
         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/">
@@ -153,7 +153,7 @@
         translator = Translator()
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((2, None, u'Foo', []), messages[0])
+        self.assertEqual((2, None, 'Foo', []), messages[0])
 
     def test_ignore_tag_with_fixed_xml_lang(self):
         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/">
@@ -170,7 +170,7 @@
         translator = Translator()
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((2, None, u'(c) 2007 Edgewall Software', []),
+        self.assertEqual((2, None, '(c) 2007 Edgewall Software', []),
                          messages[0])
 
     def test_ignore_attribute_with_expression(self):
@@ -468,7 +468,7 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((3, None, u'Foo', ['As in foo bar']), messages[0])
+        self.assertEqual((3, None, 'Foo', ['As in foo bar']), messages[0])
         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
             xmlns:i18n="http://genshi.edgewall.org/i18n">
           <p i18n:msg="" i18n:comment="As in foo bar">Foo</p>
@@ -477,7 +477,7 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((3, None, u'Foo', ['As in foo bar']), messages[0])
+        self.assertEqual((3, None, 'Foo', ['As in foo bar']), messages[0])
 
     def test_translate_i18n_msg_with_comment(self):
         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
@@ -499,8 +499,8 @@
         translator = Translator()
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(2, len(messages))
-        self.assertEqual((3, None, u'Foo bar', []), messages[0])
-        self.assertEqual((3, None, u'Foo', []), messages[1])
+        self.assertEqual((3, None, 'Foo bar', []), messages[0])
+        self.assertEqual((3, None, 'Foo', []), messages[1])
 
     def test_translate_i18n_msg_with_attr(self):
         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
@@ -509,7 +509,7 @@
         </html>""")
         gettext = lambda s: u"Voh"
         translator = Translator(DummyTranslations({
-            'Foo': u'Voh',
+            'Foo': 'Voh',
             'Foo bar': u'Voh bär'
         }))
         tmpl.filters.insert(0, translator)
@@ -554,7 +554,7 @@
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
         self.assertEqual(
-            (3, None, u'Changed %(date)s ago by %(author)s', []), messages[0]
+            (3, None, 'Changed %(date)s ago by %(author)s', []), messages[0]
         )
 
     def test_i18n_msg_ticket_300_translate(self):
@@ -565,7 +565,7 @@
           </i18n:msg>
         </html>""")
         translations = DummyTranslations({
-            u'Changed %(date)s ago by %(author)s': u'Modificado à %(date)s por %(author)s'
+            'Changed %(date)s ago by %(author)s': u'Modificado à %(date)s por %(author)s'
         })
         translator = Translator(translations)
         translator.setup(tmpl)
@@ -619,12 +619,12 @@
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
         self.assertEqual(
-            u'Before you do that, though, please first try\n            '
-            u'[1:[2:searching]\n            for similar issues], as it is '
-            u'quite likely that this problem\n            has been reported '
-            u'before. For questions about installation\n            and '
-            u'configuration of Trac, please try the\n            '
-            u'[3:mailing list]\n            instead of filing a ticket.',
+            'Before you do that, though, please first try\n            '
+            '[1:[2:searching]\n            for similar issues], as it is '
+            'quite likely that this problem\n            has been reported '
+            'before. For questions about installation\n            and '
+            'configuration of Trac, please try the\n            '
+            '[3:mailing list]\n            instead of filing a ticket.',
             messages[0][2]
         )
 
@@ -641,12 +641,12 @@
           </p>
         </html>""")
         translations = DummyTranslations({
-            u'Before you do that, though, please first try\n            '
-            u'[1:[2:searching]\n            for similar issues], as it is '
-            u'quite likely that this problem\n            has been reported '
-            u'before. For questions about installation\n            and '
-            u'configuration of Trac, please try the\n            '
-            u'[3:mailing list]\n            instead of filing a ticket.':
+            'Before you do that, though, please first try\n            '
+            '[1:[2:searching]\n            for similar issues], as it is '
+            'quite likely that this problem\n            has been reported '
+            'before. For questions about installation\n            and '
+            'configuration of Trac, please try the\n            '
+            '[3:mailing list]\n            instead of filing a ticket.':
                 u'Antes de o fazer, porém,\n            '
                 u'[1:por favor tente [2:procurar]\n            por problemas semelhantes], uma vez que '
                 u'é muito provável que este problema\n            já tenha sido reportado '
@@ -681,8 +681,8 @@
           </p>
         </html>""")
         translations = DummyTranslations({
-            u'[1:Note:] This repository is defined in\n            '
-            u'[2:[3:trac.ini]]\n            and cannot be edited on this page.':
+            '[1:Note:] This repository is defined in\n            '
+            '[2:[3:trac.ini]]\n            and cannot be edited on this page.':
                 u'[1:Nota:] Este repositório está definido em \n           '
                 u'[2:[3:trac.ini]]\n            e não pode ser editado nesta página.',
         })
@@ -691,8 +691,8 @@
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
         self.assertEqual(
-            u'[1:Note:] This repository is defined in\n            '
-            u'[2:[3:trac.ini]]\n            and cannot be edited on this page.',
+            '[1:Note:] This repository is defined in\n            '
+            '[2:[3:trac.ini]]\n            and cannot be edited on this page.',
             messages[0][2]
         )
         self.assertEqual("""<html>
@@ -1003,8 +1003,8 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(2, len(messages))
-        self.assertEqual((3, 'ngettext', (u'FooBar', u'FooBars'), []), messages[0])
-        self.assertEqual((7, 'ngettext', (u'FooBar', u'FooBars'), []), messages[1])
+        self.assertEqual((3, 'ngettext', ('FooBar', 'FooBars'), []), messages[0])
+        self.assertEqual((7, 'ngettext', ('FooBar', 'FooBars'), []), messages[1])
 
     def test_extract_i18n_choose_as_directive(self):
         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
@@ -1022,8 +1022,8 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(2, len(messages))
-        self.assertEqual((3, 'ngettext', (u'FooBar', u'FooBars'), []), messages[0])
-        self.assertEqual((7, 'ngettext', (u'FooBar', u'FooBars'), []), messages[1])
+        self.assertEqual((3, 'ngettext', ('FooBar', 'FooBars'), []), messages[0])
+        self.assertEqual((7, 'ngettext', ('FooBar', 'FooBars'), []), messages[1])
 
     def test_extract_i18n_choose_as_attribute_with_params(self):
         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
@@ -1037,8 +1037,8 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((3, 'ngettext', (u'Foo %(fname)s %(lname)s',
-                                          u'Foos %(fname)s %(lname)s'), []),
+        self.assertEqual((3, 'ngettext', ('Foo %(fname)s %(lname)s',
+                                          'Foos %(fname)s %(lname)s'), []),
                          messages[0])
 
     def test_extract_i18n_choose_as_attribute_with_params_and_domain_as_param(self):
@@ -1054,8 +1054,8 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((4, 'ngettext', (u'Foo %(fname)s %(lname)s',
-                                          u'Foos %(fname)s %(lname)s'), []),
+        self.assertEqual((4, 'ngettext', ('Foo %(fname)s %(lname)s',
+                                          'Foos %(fname)s %(lname)s'), []),
                          messages[0])
 
     def test_extract_i18n_choose_as_directive_with_params(self):
@@ -1074,11 +1074,11 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(2, len(messages))
-        self.assertEqual((3, 'ngettext', (u'Foo %(fname)s %(lname)s',
-                                          u'Foos %(fname)s %(lname)s'), []),
+        self.assertEqual((3, 'ngettext', ('Foo %(fname)s %(lname)s',
+                                          'Foos %(fname)s %(lname)s'), []),
                          messages[0])
-        self.assertEqual((7, 'ngettext', (u'Foo %(fname)s %(lname)s',
-                                          u'Foos %(fname)s %(lname)s'), []),
+        self.assertEqual((7, 'ngettext', ('Foo %(fname)s %(lname)s',
+                                          'Foos %(fname)s %(lname)s'), []),
                          messages[1])
 
     def test_extract_i18n_choose_as_directive_with_params_and_domain_as_directive(self):
@@ -1099,11 +1099,11 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(2, len(messages))
-        self.assertEqual((4, 'ngettext', (u'Foo %(fname)s %(lname)s',
-                                          u'Foos %(fname)s %(lname)s'), []),
+        self.assertEqual((4, 'ngettext', ('Foo %(fname)s %(lname)s',
+                                          'Foos %(fname)s %(lname)s'), []),
                          messages[0])
-        self.assertEqual((9, 'ngettext', (u'Foo %(fname)s %(lname)s',
-                                          u'Foos %(fname)s %(lname)s'), []),
+        self.assertEqual((9, 'ngettext', ('Foo %(fname)s %(lname)s',
+                                          'Foos %(fname)s %(lname)s'), []),
                          messages[1])
 
     def test_extract_i18n_choose_as_attribute_with_params_and_comment(self):
@@ -1118,9 +1118,9 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((3, 'ngettext', (u'Foo %(fname)s %(lname)s',
-                                          u'Foos %(fname)s %(lname)s'),
-                          [u'As in Foo Bar']),
+        self.assertEqual((3, 'ngettext', ('Foo %(fname)s %(lname)s',
+                                          'Foos %(fname)s %(lname)s'),
+                          ['As in Foo Bar']),
                          messages[0])
 
     def test_extract_i18n_choose_as_directive_with_params_and_comment(self):
@@ -1135,9 +1135,9 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((3, 'ngettext', (u'Foo %(fname)s %(lname)s',
-                                          u'Foos %(fname)s %(lname)s'),
-                          [u'As in Foo Bar']),
+        self.assertEqual((3, 'ngettext', ('Foo %(fname)s %(lname)s',
+                                          'Foos %(fname)s %(lname)s'),
+                          ['As in Foo Bar']),
                          messages[0])
 
     def test_translate_i18n_domain_with_nested_inlcudes(self):
@@ -1369,7 +1369,7 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((3, None, u'Please see [1:Help] for details.', []),
+        self.assertEqual((3, None, 'Please see [1:Help] for details.', []),
                          messages[0])
 
     def test_extract_i18n_msg_with_py_strip_and_comment(self):
@@ -1383,7 +1383,7 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((3, None, u'Please see [1:Help] for details.',
+        self.assertEqual((3, None, 'Please see [1:Help] for details.',
                           ['Foo']), messages[0])
 
     def test_extract_i18n_choose_as_attribute_and_py_strip(self):
@@ -1398,7 +1398,7 @@
         tmpl.add_directives(Translator.NAMESPACE, translator)
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(1, len(messages))
-        self.assertEqual((3, 'ngettext', (u'FooBar', u'FooBars'), []), messages[0])
+        self.assertEqual((3, 'ngettext', ('FooBar', 'FooBars'), []), messages[0])
 
     def test_translate_i18n_domain_with_inline_directive_on_START_NS(self):
         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
@@ -1442,10 +1442,10 @@
         </html>""")
         results = list(extract(buf, ['_', 'ngettext'], [], {}))
         self.assertEqual([
-            (3, None, u'Example', []),
-            (6, None, u'Example', []),
-            (7, '_', u'Hello, %(name)s', []),
-            (8, 'ngettext', (u'You have %d item', u'You have %d items', None),
+            (3, None, 'Example', []),
+            (6, None, 'Example', []),
+            (7, '_', 'Hello, %(name)s', []),
+            (8, 'ngettext', ('You have %d item', 'You have %d items', None),
                              []),
         ], results)
 
@@ -1458,7 +1458,7 @@
             'extract_text': 'no'
         }))
         self.assertEqual([
-            (3, 'ngettext', (u'Singular', u'Plural', None), []),
+            (3, 'ngettext', ('Singular', 'Plural', None), []),
         ], results)
 
     def test_text_template_extraction(self):
@@ -1475,9 +1475,9 @@
             'template_class': 'genshi.template:TextTemplate'
         }))
         self.assertEqual([
-            (1, '_', u'Dear %(name)s', []),
-            (3, 'ngettext', (u'Your item:', u'Your items', None), []),
-            (7, None, u'All the best,\n        Foobar', [])
+            (1, '_', 'Dear %(name)s', []),
+            (3, 'ngettext', ('Your item:', 'Your items', None), []),
+            (7, None, 'All the best,\n        Foobar', [])
         ], results)
 
     def test_extraction_with_keyword_arg(self):
@@ -1486,7 +1486,7 @@
         </html>""")
         results = list(extract(buf, ['gettext'], [], {}))
         self.assertEqual([
-            (2, 'gettext', (u'Foobar'), []),
+            (2, 'gettext', ('Foobar'), []),
         ], results)
 
     def test_extraction_with_nonstring_arg(self):
@@ -1495,7 +1495,7 @@
         </html>""")
         results = list(extract(buf, ['dgettext'], [], {}))
         self.assertEqual([
-            (2, 'dgettext', (None, u'Foobar'), []),
+            (2, 'dgettext', (None, 'Foobar'), []),
         ], results)
 
     def test_extraction_inside_ignored_tags(self):
@@ -1509,7 +1509,7 @@
         </html>""")
         results = list(extract(buf, ['_'], [], {}))
         self.assertEqual([
-            (5, '_', u'Please wait...', []),
+            (5, '_', 'Please wait...', []),
         ], results)
 
     def test_extraction_inside_ignored_tags_with_directives(self):
@@ -1565,16 +1565,16 @@
         messages = list(translator.extract(tmpl.stream))
         self.assertEqual(10, len(messages))
         self.assertEqual([
-            (3, None, u'View differences', []),
-            (6, None, u'inline', []),
-            (8, None, u'side by side', []),
-            (10, None, u'Show', []),
-            (13, None, u'lines around each change', []),
-            (16, None, u'Ignore:', []),
-            (20, None, u'Blank lines', []),
-            (25, None, u'Case changes',[]),
-            (30, None, u'White space changes', []),
-            (34, '_', u'Update', [])], messages)
+            (3, None, 'View differences', []),
+            (6, None, 'inline', []),
+            (8, None, 'side by side', []),
+            (10, None, 'Show', []),
+            (13, None, 'lines around each change', []),
+            (16, None, 'Ignore:', []),
+            (20, None, 'Blank lines', []),
+            (25, None, 'Case changes',[]),
+            (30, None, 'White space changes', []),
+            (34, '_', 'Update', [])], messages)
 
 
 def suite():
--- a/genshi/template/tests/text.py
+++ b/genshi/template/tests/text.py
@@ -33,22 +33,22 @@
 
     def test_escaping(self):
         tmpl = OldTextTemplate('\\#escaped')
-        self.assertEqual('#escaped', str(tmpl.generate()))
+        self.assertEqual('#escaped', tmpl.generate().render())
 
     def test_comment(self):
         tmpl = OldTextTemplate('## a comment')
-        self.assertEqual('', str(tmpl.generate()))
+        self.assertEqual('', tmpl.generate().render())
 
     def test_comment_escaping(self):
         tmpl = OldTextTemplate('\\## escaped comment')
-        self.assertEqual('## escaped comment', str(tmpl.generate()))
+        self.assertEqual('## escaped comment', tmpl.generate().render())
 
     def test_end_with_args(self):
         tmpl = OldTextTemplate("""
         #if foo
           bar
         #end 'if foo'""")
-        self.assertEqual('\n', str(tmpl.generate(foo=False)))
+        self.assertEqual('\n', tmpl.generate(foo=False).render())
 
     def test_latin1_encoded(self):
         text = u'$foo\xf6$bar'.encode('iso-8859-1')
@@ -126,22 +126,22 @@
 
     def test_escaping(self):
         tmpl = NewTextTemplate('\\{% escaped %}')
-        self.assertEqual('{% escaped %}', str(tmpl.generate()))
+        self.assertEqual('{% escaped %}', tmpl.generate().render())
 
     def test_comment(self):
         tmpl = NewTextTemplate('{# a comment #}')
-        self.assertEqual('', str(tmpl.generate()))
+        self.assertEqual('', tmpl.generate().render())
 
     def test_comment_escaping(self):
         tmpl = NewTextTemplate('\\{# escaped comment #}')
-        self.assertEqual('{# escaped comment #}', str(tmpl.generate()))
+        self.assertEqual('{# escaped comment #}', tmpl.generate().render())
 
     def test_end_with_args(self):
         tmpl = NewTextTemplate("""
 {% if foo %}
   bar
 {% end 'if foo' %}""")
-        self.assertEqual('\n', str(tmpl.generate(foo=False)))
+        self.assertEqual('\n', tmpl.generate(foo=False).render())
 
     def test_latin1_encoded(self):
         text = u'$foo\xf6$bar'.encode('iso-8859-1')
@@ -190,30 +190,30 @@
         Verify that a code block with trailing space does not cause a syntax
         error (see ticket #127).
         """
-        NewTextTemplate(u"""
+        NewTextTemplate("""
           {% python
             bar = 42
           $}
         """)
 
     def test_exec_import(self):
-        tmpl = NewTextTemplate(u"""{% python from datetime import timedelta %}
+        tmpl = NewTextTemplate("""{% python from datetime import timedelta %}
         ${timedelta(days=2)}
         """)
         self.assertEqual("""
         2 days, 0:00:00
-        """, str(tmpl.generate()))
+        """, tmpl.generate().render())
 
     def test_exec_def(self):
-        tmpl = NewTextTemplate(u"""{% python
+        tmpl = NewTextTemplate("""{% python
         def foo():
             return 42
         %}
         ${foo()}
         """)
-        self.assertEqual(u"""
+        self.assertEqual("""
         42
-        """, str(tmpl.generate()))
+        """, tmpl.generate().render())
 
     def test_include(self):
         file1 = open(os.path.join(self.dirname, 'tmpl1.txt'), 'w')
--- a/genshi/template/text.py
+++ b/genshi/template/text.py
@@ -169,7 +169,7 @@
 
         _escape_sub = self._escape_re.sub
         def _escape_repl(mo):
-            groups = filter(None, mo.groups()) 
+            groups = [g for g in mo.groups() if g]
             if not groups:
                 return ''
             return groups[0]
--- a/genshi/tests/builder.py
+++ b/genshi/tests/builder.py
@@ -12,7 +12,6 @@
 # history and logs, available at http://genshi.edgewall.org/log/.
 
 import doctest
-from HTMLParser import HTMLParseError
 import unittest
 
 from genshi.builder import Element, tag
@@ -24,12 +23,12 @@
 
     def test_link(self):
         link = tag.a(href='#', title='Foo', accesskey=None)('Bar')
-        bits = iter(link.generate())
+        events = list(link.generate())
         self.assertEqual((Stream.START,
                           ('a', Attrs([('href', "#"), ('title', "Foo")])),
-                          (None, -1, -1)), bits.next())
-        self.assertEqual((Stream.TEXT, u'Bar', (None, -1, -1)), bits.next())
-        self.assertEqual((Stream.END, 'a', (None, -1, -1)), bits.next())
+                          (None, -1, -1)), events[0])
+        self.assertEqual((Stream.TEXT, 'Bar', (None, -1, -1)), events[1])
+        self.assertEqual((Stream.END, 'a', (None, -1, -1)), events[2])
 
     def test_nonstring_attributes(self):
         """
@@ -37,41 +36,40 @@
         non-string type), it is coverted to a string when the stream is
         generated.
         """
-        event = iter(tag.foo(id=3)).next()
+        events = list(tag.foo(id=3))
         self.assertEqual((Stream.START, ('foo', Attrs([('id', '3')])),
-                          (None, -1, -1)),
-                         event)
+                          (None, -1, -1)), events[0])
 
     def test_duplicate_attributes(self):
         link = tag.a(href='#1', href_='#2')('Bar')
-        bits = iter(link.generate())
-        self.assertEqual((Stream.START,
-                          ('a', Attrs([('href', "#1")])),
-                          (None, -1, -1)), bits.next())
-        self.assertEqual((Stream.TEXT, u'Bar', (None, -1, -1)), bits.next())
-        self.assertEqual((Stream.END, 'a', (None, -1, -1)), bits.next())
+        events = list(link.generate())
+        self.assertEqual((Stream.START, ('a', Attrs([('href', "#1")])),
+                         (None, -1, -1)), events[0])
+        self.assertEqual((Stream.TEXT, 'Bar', (None, -1, -1)), events[1])
+        self.assertEqual((Stream.END, 'a', (None, -1, -1)), events[2])
 
     def test_stream_as_child(self):
-        xml = list(tag.span(XML('<b>Foo</b>')).generate())
-        self.assertEqual(5, len(xml))
-        self.assertEqual((Stream.START, ('span', ())), xml[0][:2])
-        self.assertEqual((Stream.START, ('b', ())), xml[1][:2])
-        self.assertEqual((Stream.TEXT, 'Foo'), xml[2][:2])
-        self.assertEqual((Stream.END, 'b'), xml[3][:2])
-        self.assertEqual((Stream.END, 'span'), xml[4][:2])
+        events = list(tag.span(XML('<b>Foo</b>')).generate())
+        self.assertEqual(5, len(events))
+        self.assertEqual((Stream.START, ('span', ())), events[0][:2])
+        self.assertEqual((Stream.START, ('b', ())), events[1][:2])
+        self.assertEqual((Stream.TEXT, 'Foo'), events[2][:2])
+        self.assertEqual((Stream.END, 'b'), events[3][:2])
+        self.assertEqual((Stream.END, 'span'), events[4][:2])
 
     def test_markup_escape(self):
-        from genshi.core import Markup
         m = Markup('See %s') % tag.a('genshi',
                                      href='http://genshi.edgwall.org')
         self.assertEqual(m, Markup('See <a href="http://genshi.edgwall.org">'
                                    'genshi</a>'))
 
+
 def suite():
     suite = unittest.TestSuite()
     suite.addTest(doctest.DocTestSuite(Element.__module__))
     suite.addTest(unittest.makeSuite(ElementFactoryTestCase, 'test'))
     return suite
 
+
 if __name__ == '__main__':
     unittest.main(defaultTest='suite')
Copyright (C) 2012-2017 Edgewall Software