# HG changeset patch # User Ludovic Chabant # Date 1417726193 28800 # Node ID 1c3d229158ba79f289356efdfd1bf013e222a11e # Parent 8d956bd94ad250af1bcf59eb5449f5ebdf562d17 Make a nice error message when a layout hasn't been found. diff -r 8d956bd94ad2 -r 1c3d229158ba piecrust/rendering.py --- a/piecrust/rendering.py Thu Dec 04 12:49:35 2014 -0800 +++ b/piecrust/rendering.py Thu Dec 04 12:49:53 2014 -0800 @@ -4,7 +4,7 @@ from piecrust.data.builder import (DataBuildingContext, build_page_data, build_layout_data) from piecrust.sources.base import PageSource -from piecrust.templating.base import TemplatingError +from piecrust.templating.base import TemplateNotFoundError, TemplatingError from piecrust.uriutil import get_slug @@ -205,7 +205,12 @@ engine = get_template_engine(page.app, engine_name) if engine is None: raise PageRenderingError("No such template engine: %s" % engine_name) - output = engine.renderFile(full_names, layout_data) + try: + output = engine.renderFile(full_names, layout_data) + except TemplateNotFoundError as ex: + msg = "Can't find template for page: %s\n" % page.path + msg += "Looked for: %s" % ', '.join(full_names) + raise Exception(msg) from ex return output