Chris McDonough
2013-09-10 b7e92d256826b53fa17b57040d527246f551b0da
create an add_default_renderers method on the configurator and use it from testing.setUp() and within the Configurator constructor
4 files modified
32 ■■■■ changed files
pyramid/config/__init__.py 5 ●●●● patch | view | raw | blame | history
pyramid/config/rendering.py 4 ●●●● patch | view | raw | blame | history
pyramid/testing.py 13 ●●●●● patch | view | raw | blame | history
pyramid/tests/test_config/test_rendering.py 10 ●●●●● patch | view | raw | blame | history
pyramid/config/__init__.py
@@ -62,7 +62,6 @@
from pyramid.config.assets import AssetsConfiguratorMixin
from pyramid.config.factories import FactoriesConfiguratorMixin
from pyramid.config.i18n import I18NConfiguratorMixin
from pyramid.config.rendering import DEFAULT_RENDERERS
from pyramid.config.rendering import RenderingConfiguratorMixin
from pyramid.config.routes import RoutesConfiguratorMixin
from pyramid.config.security import SecurityConfiguratorMixin
@@ -344,9 +343,7 @@
        registry.registerUtility(debug_logger, IDebugLogger)
        for name, renderer in DEFAULT_RENDERERS:
            self.add_renderer(name, renderer)
        self.add_default_renderers()
        self.add_default_view_predicates()
        self.add_default_route_predicates()
pyramid/config/rendering.py
@@ -12,6 +12,10 @@
    )
class RenderingConfiguratorMixin(object):
    def add_default_renderers(self):
        for name, renderer in DEFAULT_RENDERERS:
            self.add_renderer(name, renderer)
    @action_method
    def add_renderer(self, name, factory):
        """
pyramid/testing.py
@@ -450,18 +450,7 @@
        # someone may be passing us an esoteric "dummy" registry, and
        # the below won't succeed if it doesn't have a registerUtility
        # method.
        from pyramid.config import DEFAULT_RENDERERS
        for name, renderer in DEFAULT_RENDERERS:
            # Cause the default renderers to be registered because
            # in-the-wild test code relies on being able to call
            # e.g. ``pyramid.chameleon_zpt.render_template``
            # without registering a .pt renderer, expecting the "real"
            # template to be rendered.  This is a holdover from when
            # individual template system renderers weren't indirected
            # by the ``pyramid.renderers`` machinery, and
            # ``render_template`` and friends went behind the back of
            # any existing renderer factory lookup system.
            config.add_renderer(name, renderer)
        config.add_default_renderers()
        config.add_default_view_predicates()
        config.add_default_route_predicates()
    config.commit()
pyramid/tests/test_config/test_rendering.py
@@ -6,6 +6,16 @@
        config = Configurator(*arg, **kw)
        return config
    def test_add_default_renderers(self):
        from pyramid.config.rendering import DEFAULT_RENDERERS
        from pyramid.interfaces import IRendererFactory
        config = self._makeOne(autocommit=True)
        config.add_default_renderers()
        for name, impl in DEFAULT_RENDERERS:
            self.assertTrue(
                config.registry.queryUtility(IRendererFactory, name) is not None
                )
    def test_add_renderer(self):
        from pyramid.interfaces import IRendererFactory
        config = self._makeOne(autocommit=True)