diff --git a/tests/app/tests/test_webpack.py b/tests/app/tests/test_webpack.py
index 312557a4..16445973 100644
--- a/tests/app/tests/test_webpack.py
+++ b/tests/app/tests/test_webpack.py
@@ -15,6 +15,7 @@
WebpackLoaderBadStatsError
)
from webpack_loader.utils import get_loader
+from webpack_loader.templatetags.webpack_loader import render_bundle
BUNDLE_PATH = os.path.join(settings.BASE_DIR, 'assets/bundles/')
@@ -166,6 +167,20 @@ def test_missing_stats_file(self):
).format(stats_file)
self.assertIn(expected, str(e))
+ def test_missin_stats_file_template_tag_render_bundle(self):
+ stats_file = settings.WEBPACK_LOADER[DEFAULT_CONFIG]['STATS_FILE']
+ if os.path.exists(stats_file):
+ os.remove(stats_file)
+ expected = ''.format(
+ 'main',
+ 'Error reading {0}. Are you sure webpack has generated the '
+ 'file and the path is correct?'.format(stats_file)
+ )
+ self.assertEquals(
+ render_bundle('main'),
+ expected
+ )
+
def test_bad_status_in_production(self):
with open(
settings.WEBPACK_LOADER[DEFAULT_CONFIG]['STATS_FILE'], 'w'
diff --git a/webpack_loader/templatetags/webpack_loader.py b/webpack_loader/templatetags/webpack_loader.py
index a964dc04..0a66c012 100644
--- a/webpack_loader/templatetags/webpack_loader.py
+++ b/webpack_loader/templatetags/webpack_loader.py
@@ -37,7 +37,13 @@ def _get_bundle(bundle_name, extension, config):
@register.simple_tag
def render_bundle(bundle_name, extension=None, config='DEFAULT'):
- return render_as_tags(_get_bundle(bundle_name, extension, config))
+ try:
+ return render_as_tags(_get_bundle(bundle_name, extension, config))
+ except (IOError, KeyError) as e:
+ return ''.format(
+ bundle_name,
+ e
+ )
@register.simple_tag