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