Mercurial > piecrust2
diff piecrust/data/assetor.py @ 6:f5ca5c5bed85
More Python 3 fixes, modularization, and new unit tests.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 16 Aug 2014 08:15:30 -0700 |
parents | 474c9882decf |
children | a8f9c78a6608 |
line wrap: on
line diff
--- a/piecrust/data/assetor.py Mon Aug 11 22:36:47 2014 -0700 +++ b/piecrust/data/assetor.py Sat Aug 16 08:15:30 2014 -0700 @@ -1,3 +1,4 @@ +import os import os.path import logging from piecrust.uriutil import multi_replace @@ -6,6 +7,10 @@ logger = logging.getLogger(__name__) +class UnsupportedAssetsError(Exception): + pass + + def build_base_url(app, uri, assets_path): base_url_format = app.env.base_asset_url_format site_root = app.config.get('site/root') @@ -13,6 +18,7 @@ pretty = app.config.get('site/pretty_urls') if not pretty: uri, _ = os.path.splitext(uri) + uri = uri.lstrip('/') base_url = multi_replace( base_url_format, { @@ -71,5 +77,8 @@ for _, __, filenames in os.walk(assets_dir): for fn in filenames: name, ext = os.path.splitext(fn) + if name in self._cache: + raise UnsupportedAssetsError( + "Multiple asset files are named '%s'." % name) self._cache[name] = base_url + fn