I spent some time today trying to figure out why my views where unable to find a renderer even though it was registered. It turns out that I was calling config.scan() before doing config.add_renderer(). The resulting behaviour is a bit misleading: when rendering a view RendererHelper.renderer() will raise a ValueError indicating that no renderer factory was registered, even though a queryUtility would happily return the right factory. I see two ways to improve this:
1. update RendererHelper.__init__() to check if the result of queryUtility(IRendererFactory, name=renderer_type) is None, and if so raise an exception. Something like raise ProgrammingError("Trying to use a renderer %s which is not (yet) registered") would have helped me track this down a lot faster. 2. update RendererHelper.renderer() to try the queryUtility again if self.factory is None, which prevents the need for registering renderers before setting up the views. Wichert. _______________________________________________ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev