- Add a deprecation warning for non-API function
``pyramid.renderers.renderer_from_name`` which has seen use in the wild.
- Add a ``clone`` method to ``pyramid.renderers.RendererHelper`` for use by
the ``pyramid.view.view_config`` decorator.
| | |
| | | - Remove ``compat`` code that served only the purpose of providing backwards |
| | | compatibility with Python 2.4. |
| | | |
| | | - Add a deprecation warning for non-API function |
| | | ``pyramid.renderers.renderer_from_name`` which has seen use in the wild. |
| | | |
| | | - Add a ``clone`` method to ``pyramid.renderers.RendererHelper`` for use by |
| | | the ``pyramid.view.view_config`` decorator. |
| | | |
| | | Documentation |
| | | ------------- |
| | | |
| | |
| | | import threading |
| | | |
| | | from zope.interface import implements |
| | | from zope.deprecation import deprecated |
| | | |
| | | from pyramid.interfaces import IChameleonLookup |
| | | from pyramid.interfaces import IChameleonTranslate |
| | |
| | | lock.release() |
| | | return lookup(info) |
| | | |
| | | # XXX deprecate |
| | | def renderer_from_name(path, package=None): |
| | | return RendererHelper(name=path, package=package).renderer |
| | | |
| | | deprecated( |
| | | 'renderer_from_name', |
| | | 'The "pyramid.renderers.renderer_from_name" function was never an API. ' |
| | | 'However, its use has been observed "in the wild." It will disappear in ' |
| | | 'the next major release. To replace it, use the ' |
| | | '``pyramid.renderers.get_renderer`` API instead. ') |
| | | |
| | | class RendererHelper(object): |
| | | implements(IRendererInfo) |
| | |
| | | response.cache_expires = cache_for |
| | | return response |
| | | |
| | | def clone(self, name=None, package=None, registry=None): |
| | | if name is None: |
| | | name = self.name |
| | | if package is None: |
| | | package = self.package |
| | | if registry is None: |
| | | registry = self.registry |
| | | return self.__class__(name=name, package=package, registry=registry) |
| | | |
| | |
| | | |
| | | class TestRendererFromName(unittest.TestCase): |
| | | def setUp(self): |
| | | from zope.deprecation import __show__ |
| | | __show__.off() |
| | | self.config = cleanUp() |
| | | |
| | | def tearDown(self): |
| | | cleanUp() |
| | | |
| | | from zope.deprecation import __show__ |
| | | __show__.on() |
| | | |
| | | def _callFUT(self, path, package=None): |
| | | from pyramid.renderers import renderer_from_name |
| | | return renderer_from_name(path, package) |
| | |
| | | self.assertEqual(response.status, '406 You Lose') |
| | | self.assertEqual(response.body, 'abc') |
| | | |
| | | def test_clone_noargs(self): |
| | | helper = self._makeOne('name', 'package', 'registry') |
| | | cloned_helper = helper.clone() |
| | | self.assertEqual(cloned_helper.name, 'name') |
| | | self.assertEqual(cloned_helper.package, 'package') |
| | | self.assertEqual(cloned_helper.registry, 'registry') |
| | | self.assertFalse(helper is cloned_helper) |
| | | |
| | | def test_clone_allargs(self): |
| | | helper = self._makeOne('name', 'package', 'registry') |
| | | cloned_helper = helper.clone(name='name2', package='package2', |
| | | registry='registry2') |
| | | self.assertEqual(cloned_helper.name, 'name2') |
| | | self.assertEqual(cloned_helper.package, 'package2') |
| | | self.assertEqual(cloned_helper.registry, 'registry2') |
| | | self.assertFalse(helper is cloned_helper) |
| | | |
| | | class Test_render(unittest.TestCase): |
| | | def setUp(self): |
| | | self.config = testing.setUp() |
| | |
| | | # see https://github.com/Pylons/pyramid/pull/234 |
| | | from pyramid.interfaces import IRendererInfo |
| | | import pyramid.tests |
| | | outerself = self |
| | | class DummyRendererHelper(object): |
| | | implements(IRendererInfo) |
| | | name = 'fixtures/minimal.pt' |
| | | package = pyramid.tests |
| | | def clone(self, name=None, package=None, registry=None): |
| | | outerself.assertEqual(name, self.name) |
| | | outerself.assertEqual(package, self.package) |
| | | outerself.assertEqual(registry, context.config.registry) |
| | | self.cloned = True |
| | | return self |
| | | renderer_helper = DummyRendererHelper() |
| | | decorator = self._makeOne(renderer=renderer_helper) |
| | | venusian = DummyVenusian() |
| | |
| | | settings = call_venusian(venusian, context) |
| | | self.assertEqual(len(settings), 1) |
| | | renderer = settings[0]['renderer'] |
| | | self.assertFalse(renderer is renderer_helper) |
| | | self.assertEqual(renderer.name, 'fixtures/minimal.pt') |
| | | self.assertEqual(renderer.package, pyramid.tests) |
| | | self.assertEqual(renderer.registry, context.config.registry) |
| | | self.assertTrue(renderer is renderer_helper) |
| | | self.assertTrue(renderer.cloned) |
| | | |
| | | class Test_append_slash_notfound_view(BaseTest, unittest.TestCase): |
| | | def _callFUT(self, context, request): |
| | |
| | | import mimetypes |
| | | import venusian |
| | | import warnings |
| | | |
| | | from zope.interface import providedBy |
| | | from zope.deprecation import deprecated |
| | |
| | | elif IRendererInfo.providedBy(renderer): |
| | | # create a new rendererinfo to clear out old registry on a |
| | | # rescan, see https://github.com/Pylons/pyramid/pull/234 |
| | | renderer = RendererHelper(name=renderer.name, |
| | | renderer = renderer.clone(name=renderer.name, |
| | | package=info.module, |
| | | registry=context.config.registry) |
| | | settings['renderer'] = renderer |