From 3ebf0287eeb8c269a7a3b35ee1441d1b07118d7f Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Wed, 6 Jan 2010 02:46:54 +0000 Subject: - Show the derived abspath of template resource specifications in the traceback when a renderer template cannot be found. - Show the original traceback when a Chameleon template cannot be rendered due to a platform incompatibility. --- repoze/bfg/renderers.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'repoze/bfg/renderers.py') diff --git a/repoze/bfg/renderers.py b/repoze/bfg/renderers.py index e937bd2a1..b54803b3b 100644 --- a/repoze/bfg/renderers.py +++ b/repoze/bfg/renderers.py @@ -45,20 +45,18 @@ def template_renderer_factory(spec, impl): else: # spec is a package:relpath resource spec renderer = reg.queryUtility(ITemplateRenderer, name=spec) - if renderer is None: - # service unit tests by trying the relative path string as - # the utility name directly - renderer = reg.queryUtility(ITemplateRenderer, name=spec) if renderer is None: try: package_name, filename = spec.split(':', 1) except ValueError: # pragma: no cover - # unit test or someone passing a relative pathname + # unit test or somehow we were passed a relative pathname; + # this should die package_name = caller_package(4).__name__ filename = spec - if not pkg_resources.resource_exists(package_name, filename): - raise ValueError('Missing template resource: %s' % spec) abspath = pkg_resources.resource_filename(package_name, filename) + if not pkg_resources.resource_exists(package_name, filename): + raise ValueError( + 'Missing template resource: %s (%s)' % (spec, abspath)) renderer = impl(abspath) if not _reload_resources(): # cache the template -- cgit v1.2.3