- Timestamp:
- Mar 18, 2011, 10:17:52 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 10 edited
-
. (modified) (1 prop)
-
genshi/template/base.py (modified) (2 diffs)
-
genshi/template/directives.py (modified) (3 diffs)
-
genshi/template/loader.py (modified) (2 diffs)
-
genshi/template/plugin.py (modified) (1 diff)
-
genshi/template/tests/directives.py (modified) (1 diff)
-
genshi/template/tests/loader.py (modified) (2 diffs)
-
genshi/template/tests/markup.py (modified) (2 diffs)
-
genshi/template/tests/plugin.py (modified) (3 diffs)
-
genshi/template/text.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/experimental/py3k merged: 1143
- Property svn:mergeinfo changed
-
trunk/genshi/template/base.py
r1120 r1160 16 16 from collections import deque 17 17 import os 18 from StringIO import StringIO19 18 import sys 20 19 20 from genshi.compat import StringIO, BytesIO 21 21 from genshi.core import Attrs, Stream, StreamEventKind, START, TEXT, _ensure 22 22 from genshi.input import ParseError … … 399 399 self._prepared = False 400 400 401 if isinstance(source, basestring): 402 source = StringIO(source) 403 else: 404 source = source 401 if not isinstance(source, Stream) and not hasattr(source, 'read'): 402 if isinstance(source, unicode): 403 source = StringIO(source) 404 else: 405 source = BytesIO(source) 405 406 try: 406 407 self._stream = self._parse(source, encoding) -
trunk/genshi/template/directives.py
r1129 r1160 623 623 raise TemplateRuntimeError('"when" directives can only be used ' 624 624 'inside a "choose" directive', 625 self.filename, * stream.next()[2][1:])625 self.filename, *(stream.next())[2][1:]) 626 626 if info[0]: 627 627 return [] … … 629 629 raise TemplateRuntimeError('either "choose" or "when" directive ' 630 630 'must have a test expression', 631 self.filename, * stream.next()[2][1:])631 self.filename, *(stream.next())[2][1:]) 632 632 if info[1]: 633 633 value = info[2] … … 662 662 raise TemplateRuntimeError('an "otherwise" directive can only be ' 663 663 'used inside a "choose" directive', 664 self.filename, * stream.next()[2][1:])664 self.filename, *(stream.next())[2][1:]) 665 665 if info[0]: 666 666 return [] -
trunk/genshi/template/loader.py
r1120 r1160 47 47 >>> import tempfile 48 48 >>> fd, path = tempfile.mkstemp(suffix='.html', prefix='template') 49 >>> os.write(fd, '<p>$var</p>')49 >>> os.write(fd, u'<p>$var</p>'.encode('utf-8')) 50 50 11 51 51 >>> os.close(fd) … … 284 284 def _load_from_directory(filename): 285 285 filepath = os.path.join(path, filename) 286 fileobj = open(filepath, ' U')286 fileobj = open(filepath, 'rbU') 287 287 mtime = os.path.getmtime(filepath) 288 288 def _uptodate(): -
trunk/genshi/template/plugin.py
r1082 r1160 45 45 self.options = options 46 46 47 self.default_encoding = options.get('genshi.default_encoding', 'utf-8')47 self.default_encoding = options.get('genshi.default_encoding', None) 48 48 auto_reload = options.get('genshi.auto_reload', '1') 49 49 if isinstance(auto_reload, basestring): -
trunk/genshi/template/tests/directives.py
r1120 r1160 1138 1138 </div>""") 1139 1139 self.assertEqual("""<div> 1140 84 421141 </div>""" , tmpl.generate(x=42).render(encoding=None))1140 84 %s 1141 </div>""" % (84 / 2), tmpl.generate(x=42).render(encoding=None)) 1142 1142 1143 1143 def test_semicolon_escape(self): -
trunk/genshi/template/tests/loader.py
r1120 r1160 348 348 349 349 def test_load_with_default_encoding(self): 350 f = open(os.path.join(self.dirname, 'tmpl.html'), 'w ')350 f = open(os.path.join(self.dirname, 'tmpl.html'), 'wb') 351 351 try: 352 352 f.write(u'<div>\xf6</div>'.encode('iso-8859-1')) … … 357 357 358 358 def test_load_with_explicit_encoding(self): 359 f = open(os.path.join(self.dirname, 'tmpl.html'), 'w ')359 f = open(os.path.join(self.dirname, 'tmpl.html'), 'wb') 360 360 try: 361 361 f.write(u'<div>\xf6</div>'.encode('iso-8859-1')) -
trunk/genshi/template/tests/markup.py
r1149 r1160 16 16 import pickle 17 17 import shutil 18 from StringIO import StringIO19 18 import sys 20 19 import tempfile 21 20 import unittest 22 21 22 from genshi.compat import BytesIO, StringIO 23 23 from genshi.core import Markup 24 24 from genshi.input import XML … … 44 44 stream = XML('<root>$var</root>') 45 45 tmpl = MarkupTemplate(stream) 46 buf = StringIO()46 buf = BytesIO() 47 47 pickle.dump(tmpl, buf, 2) 48 48 buf.seek(0) -
trunk/genshi/template/tests/plugin.py
r835 r1160 31 31 def test_init_no_options(self): 32 32 plugin = MarkupTemplateEnginePlugin() 33 self.assertEqual( 'utf-8', plugin.default_encoding)33 self.assertEqual(None, plugin.default_encoding) 34 34 self.assertEqual('html', plugin.default_format) 35 35 self.assertEqual(None, plugin.default_doctype) … … 166 166 plugin = MarkupTemplateEnginePlugin() 167 167 tmpl = plugin.load_template(PACKAGE + '.templates.functions') 168 output = plugin.render({'snippet': '<b>Foo</b>'}, template=tmpl)168 output = plugin.render({'snippet': u'<b>Foo</b>'}, template=tmpl) 169 169 self.assertEqual("""<div> 170 170 False … … 179 179 def test_init_no_options(self): 180 180 plugin = TextTemplateEnginePlugin() 181 self.assertEqual( 'utf-8', plugin.default_encoding)181 self.assertEqual(None, plugin.default_encoding) 182 182 self.assertEqual('text', plugin.default_format) 183 183 -
trunk/genshi/template/text.py
r1088 r1160 163 163 164 164 source = source.read() 165 if isinstance(source, str):165 if not isinstance(source, unicode): 166 166 source = source.decode(encoding or 'utf-8', 'replace') 167 167 offset = 0 … … 280 280 281 281 source = source.read() 282 if isinstance(source, str):282 if not isinstance(source, unicode): 283 283 source = source.decode(encoding or 'utf-8', 'replace') 284 284 offset = 0
Note: See TracChangeset
for help on using the changeset viewer.
