Colin Dunklau
2018-09-19 1281a5ccffdbf5a5f22da1a38c4c82075ff0505c
Add registry arg to pyramid.renderers.get_renderer
3 files modified
17 ■■■■ changed files
CONTRIBUTORS.txt 1 ●●●● patch | view | raw | blame | history
pyramid/renderers.py 10 ●●●● patch | view | raw | blame | history
pyramid/tests/test_renderers.py 6 ●●●●● patch | view | raw | blame | history
CONTRIBUTORS.txt
@@ -331,3 +331,4 @@
- Kuzma Leshakov, 2018/09/07
- Colin Dunklau, 2018/09/19
pyramid/renderers.py
@@ -147,7 +147,7 @@
    return result
def get_renderer(renderer_name, package=None):
def get_renderer(renderer_name, package=None, registry=None):
    """ Return the renderer object for the renderer ``renderer_name``.
    You may supply a relative asset spec as ``renderer_name``.  If
@@ -157,10 +157,16 @@
    asset specification ``renderer_name``.  If ``package`` is ``None``
    (the default), the package name of the *caller* of this function
    will be used as the package.
    You may directly supply an :term:`application registry` using the
    ``registry`` argument, and it will be used to look up the renderer.
    Otherwise, the current thread-local registry (obtained via
    :func:`~pyramid.threadlocal.get_current_registry`) will be used.
    """
    if package is None:
        package = caller_package()
    helper = RendererHelper(name=renderer_name, package=package)
    helper = RendererHelper(name=renderer_name, package=package,
                            registry=registry)
    return helper.renderer
# concrete renderer factory implementations (also API)
pyramid/tests/test_renderers.py
@@ -624,6 +624,12 @@
        result = self._callFUT('abc/def.pt', package=pyramid.tests)
        self.assertEqual(result, renderer)
    def test_it_with_registry(self):
        renderer = self.config.testing_add_renderer(
            'pyramid.tests:abc/def.pt')
        result = self._callFUT('abc/def.pt', registry=self.config.registry)
        self.assertEqual(result, renderer)
class TestJSONP(unittest.TestCase):
    def _makeOne(self, param_name='callback'):
        from pyramid.renderers import JSONP