Fail loudly on AttributeError

This commit is contained in:
Matthew Tretter
2012-03-19 18:00:25 -04:00
committed by Antti Hirvonen
parent 7061627d5f
commit 0dd900736c
2 changed files with 16 additions and 4 deletions

View File

@@ -13,7 +13,8 @@ from django.utils.importlib import import_module
from compressor.cache import get_hexdigest, get_mtime
from compressor.conf import settings
from compressor.exceptions import CompressorError, UncompressableFileError
from compressor.exceptions import (CompressorError, UncompressableFileError,
FilterDoesNotExist)
from compressor.filters import CompilerFilter
from compressor.storage import default_storage, compressor_file_storage
from compressor.signals import post_compress
@@ -209,12 +210,16 @@ class Compressor(object):
else:
mod_name, cls_name = get_mod_func(filter_or_command)
try:
precompiler_class = getattr(import_module(mod_name),
cls_name)
except (ImportError, AttributeError):
mod = import_module(mod_name)
except ImportError:
return True, CompilerFilter(content, filter_type=self.type,
command=filter_or_command, filename=filename).input(
**kwargs)
try:
precompiler_class = getattr(mod, cls_name)
except AttributeError:
raise FilterDoesNotExist('Could not find "%s".' %
filter_or_command)
else:
return True, precompiler_class(content,
filter_type=self.type, filename=filename).input(

View File

@@ -31,3 +31,10 @@ class OfflineGenerationError(Exception):
Offline compression generation related exceptions
"""
pass
class FilterDoesNotExist(Exception):
"""
Raised when a filter class cannot be found.
"""
pass