diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | pyramid/chameleon_text.py | 33 | ||||
| -rw-r--r-- | pyramid/config.py | 10 | ||||
| -rw-r--r-- | pyramid/tests/test_chameleon_text.py | 25 | ||||
| -rw-r--r-- | pyramid/tests/test_chameleon_zpt.py | 17 |
5 files changed, 20 insertions, 66 deletions
diff --git a/.gitignore b/.gitignore index ae0b17b8e..562abec68 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ .coverage tutorial.db env26/ +env26-debug/ env24/ env27/ jyenv/ diff --git a/pyramid/chameleon_text.py b/pyramid/chameleon_text.py index 32896b8e9..b687ecda9 100644 --- a/pyramid/chameleon_text.py +++ b/pyramid/chameleon_text.py @@ -4,39 +4,22 @@ from zope.deprecation import deprecated from zope.interface import implements try: - from chameleon.core.template import TemplateFile - TemplateFile # prevent pyflakes complaining about a redefinition below + from chameleon.zpt.template import PageTextTemplateFile + # prevent pyflakes complaining about a redefinition below + PageTextTemplateFile except ImportError: # pragma: no cover exc_class, exc, tb = sys.exc_info() # Chameleon doesn't work on non-CPython platforms - class TemplateFile(object): + class PageTextTemplateFile(object): def __init__(self, *arg, **kw): raise ImportError, exc, tb -try: - from chameleon.zpt.language import Parser - Parser # prevent pyflakes complaining about a redefinition below -except ImportError: # pragma: no cover - # Chameleon doesn't work on non-CPython platforms - class Parser(object): - pass - from pyramid.interfaces import ITemplateRenderer from pyramid.decorator import reify from pyramid import renderers from pyramid.path import caller_package -class TextTemplateFile(TemplateFile): - default_parser = Parser() - - def __init__(self, filename, parser=None, format='text', doctype=None, - **kwargs): - if parser is None: - parser = self.default_parser - super(TextTemplateFile, self).__init__(filename, parser, format, - doctype, **kwargs) - def renderer_factory(info): return renderers.template_renderer_factory(info, TextTemplateRenderer) @@ -51,10 +34,10 @@ class TextTemplateRenderer(object): if sys.platform.startswith('java'): # pragma: no cover raise RuntimeError( 'Chameleon templates are not compatible with Jython') - return TextTemplateFile(self.path, - auto_reload=self.lookup.auto_reload, - debug=self.lookup.debug, - translate=self.lookup.translate) + return PageTextTemplateFile(self.path, + auto_reload=self.lookup.auto_reload, + debug=self.lookup.debug, + translate=self.lookup.translate) def implementation(self): return self.template diff --git a/pyramid/config.py b/pyramid/config.py index eefdaae1f..ee34adae1 100644 --- a/pyramid/config.py +++ b/pyramid/config.py @@ -2216,11 +2216,6 @@ class Configurator(object): # same function once for each added translation directory, # which does too much work, but has the same effect. - def translator(msg): - request = get_current_request() - localizer = get_localizer(request) - return localizer.translate(msg) - ctranslate = ChameleonTranslate(translator) self.registry.registerUtility(ctranslate, IChameleonTranslate) @@ -3065,6 +3060,11 @@ class PyramidConfigurationMachine(ConfigurationMachine): self._seen_files.add(spec) return True +def translator(msg): + request = get_current_request() + localizer = get_localizer(request) + return localizer.translate(msg) + # b/c def _map_view(view, registry, attr=None, renderer=None): return DefaultViewMapper(registry=registry, attr=attr, diff --git a/pyramid/tests/test_chameleon_text.py b/pyramid/tests/test_chameleon_text.py index 79bc7984c..789c78bbe 100644 --- a/pyramid/tests/test_chameleon_text.py +++ b/pyramid/tests/test_chameleon_text.py @@ -1,23 +1,16 @@ import unittest -from pyramid.testing import cleanUp from pyramid.testing import skip_on from pyramid import testing class Base: def setUp(self): - cleanUp() - import os - try: - # avoid spew from chameleon logger? - os.unlink(self._getTemplatePath('minimal.txt.py')) - except: - pass + self.config = testing.setUp() from zope.deprecation import __show__ __show__.off() def tearDown(self): - cleanUp() + testing.tearDown() from zope.deprecation import __show__ __show__.on() @@ -27,22 +20,10 @@ class Base: return os.path.join(here, 'fixtures', name) def _registerUtility(self, utility, iface, name=''): - from pyramid.threadlocal import get_current_registry - reg = get_current_registry() + reg = self.config.registry reg.registerUtility(utility, iface, name=name) - return reg - class TextTemplateRendererTests(Base, unittest.TestCase): - def setUp(self): - from pyramid.registry import Registry - registry = Registry() - self.config = testing.setUp(registry=registry) - self.config.begin() - - def tearDown(self): - self.config.end() - def _getTargetClass(self): from pyramid.chameleon_text import TextTemplateRenderer return TextTemplateRenderer diff --git a/pyramid/tests/test_chameleon_zpt.py b/pyramid/tests/test_chameleon_zpt.py index 4601c2f12..4fceb809c 100644 --- a/pyramid/tests/test_chameleon_zpt.py +++ b/pyramid/tests/test_chameleon_zpt.py @@ -1,17 +1,16 @@ import unittest -from pyramid.testing import cleanUp from pyramid.testing import skip_on from pyramid import testing class Base(object): def setUp(self): - cleanUp() + self.config = testing.setUp() from zope.deprecation import __show__ __show__.off() def tearDown(self): - cleanUp() + testing.tearDown() from zope.deprecation import __show__ __show__.on() @@ -21,21 +20,11 @@ class Base(object): return os.path.join(here, 'fixtures', name) def _registerUtility(self, utility, iface, name=''): - from pyramid.threadlocal import get_current_registry - reg = get_current_registry() + reg = self.config.registry reg.registerUtility(utility, iface, name=name) return reg class ZPTTemplateRendererTests(Base, unittest.TestCase): - def setUp(self): - from pyramid.registry import Registry - registry = Registry() - self.config = testing.setUp(registry=registry) - self.config.begin() - - def tearDown(self): - self.config.end() - def _getTargetClass(self): from pyramid.chameleon_zpt import ZPTTemplateRenderer return ZPTTemplateRenderer |
