Mercurial > genshi > genshi-test
diff genshi/filters/tests/transform.py @ 916:872726bac135 experimental-py3k
add support for python 3 to genshi.filters:
* minor changes to track encoding=None API change in core genshi modules.
* renamed genshi/filters/tests/html.py to test_html.py to avoid clashes with Python 3 top-level html module when running tests subset.
* did not rename genshi/filters/html.py.
* i18n filters:
* ugettext and friends are gone in Python 3 (and only gettext and friends exist and they now handle unicode)
* Some \ line continuations inside doctests confused 2to3 and so were removed them.
* Testing picked up a problem (already present in trunk) where Translator.__call__ could end up defining gettext as an endlessly recursive function. Noted with a TODO.
author | hodgestar |
---|---|
date | Sun, 24 Oct 2010 22:21:28 +0000 |
parents | 24733a5854d9 |
children |
line wrap: on
line diff
--- a/genshi/filters/tests/transform.py +++ b/genshi/filters/tests/transform.py @@ -48,8 +48,10 @@ def _transform(html, transformer, with_attrs=False): """Apply transformation returning simplified marked stream.""" - if isinstance(html, basestring): - html = HTML(html) + if isinstance(html, basestring) and not isinstance(html, unicode): + html = HTML(html, encoding='utf-8') + elif isinstance(html, unicode): + html = HTML(html, encoding='utf-8') stream = transformer(html, keep_marks=True) return _simplify(stream, with_attrs) @@ -57,7 +59,7 @@ class SelectTest(unittest.TestCase): """Test .select()""" def _select(self, select): - html = HTML(FOOBAR) + html = HTML(FOOBAR, encoding='utf-8') if isinstance(select, basestring): select = [select] transformer = Transformer(select[0]) @@ -138,7 +140,7 @@ def test_select_text_context(self): self.assertEqual( - list(Transformer('.')(HTML('foo'), keep_marks=True)), + list(Transformer('.')(HTML(u'foo'), keep_marks=True)), [('OUTSIDE', ('TEXT', u'foo', (None, 1, 0)))], ) @@ -205,7 +207,7 @@ def test_invert_text_context(self): self.assertEqual( - _simplify(Transformer('.').invert()(HTML('foo'), keep_marks=True)), + _simplify(Transformer('.').invert()(HTML(u'foo'), keep_marks=True)), [(None, 'TEXT', u'foo')], ) @@ -271,7 +273,7 @@ def test_empty_text_context(self): self.assertEqual( - _simplify(Transformer('.')(HTML('foo'), keep_marks=True)), + _simplify(Transformer('.')(HTML(u'foo'), keep_marks=True)), [(OUTSIDE, TEXT, u'foo')], ) @@ -656,9 +658,11 @@ def __iter__(self): self.count += 1 - return iter(HTML('CONTENT %i' % self.count)) + return iter(HTML(u'CONTENT %i' % self.count)) - if isinstance(html, basestring): + if isinstance(html, basestring) and not isinstance(html, unicode): + html = HTML(html, encoding='utf-8') + else: html = HTML(html) if content is None: content = Injector()