summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--pyramid/chameleon_text.py33
-rw-r--r--pyramid/config.py10
-rw-r--r--pyramid/tests/test_chameleon_text.py25
-rw-r--r--pyramid/tests/test_chameleon_zpt.py17
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