Fail loudly on AttributeError
This commit is contained in:
committed by
Antti Hirvonen
parent
7061627d5f
commit
0dd900736c
@@ -13,7 +13,8 @@ from django.utils.importlib import import_module
|
|||||||
from compressor.cache import get_hexdigest, get_mtime
|
from compressor.cache import get_hexdigest, get_mtime
|
||||||
|
|
||||||
from compressor.conf import settings
|
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.filters import CompilerFilter
|
||||||
from compressor.storage import default_storage, compressor_file_storage
|
from compressor.storage import default_storage, compressor_file_storage
|
||||||
from compressor.signals import post_compress
|
from compressor.signals import post_compress
|
||||||
@@ -209,12 +210,16 @@ class Compressor(object):
|
|||||||
else:
|
else:
|
||||||
mod_name, cls_name = get_mod_func(filter_or_command)
|
mod_name, cls_name = get_mod_func(filter_or_command)
|
||||||
try:
|
try:
|
||||||
precompiler_class = getattr(import_module(mod_name),
|
mod = import_module(mod_name)
|
||||||
cls_name)
|
except ImportError:
|
||||||
except (ImportError, AttributeError):
|
|
||||||
return True, CompilerFilter(content, filter_type=self.type,
|
return True, CompilerFilter(content, filter_type=self.type,
|
||||||
command=filter_or_command, filename=filename).input(
|
command=filter_or_command, filename=filename).input(
|
||||||
**kwargs)
|
**kwargs)
|
||||||
|
try:
|
||||||
|
precompiler_class = getattr(mod, cls_name)
|
||||||
|
except AttributeError:
|
||||||
|
raise FilterDoesNotExist('Could not find "%s".' %
|
||||||
|
filter_or_command)
|
||||||
else:
|
else:
|
||||||
return True, precompiler_class(content,
|
return True, precompiler_class(content,
|
||||||
filter_type=self.type, filename=filename).input(
|
filter_type=self.type, filename=filename).input(
|
||||||
|
|||||||
@@ -31,3 +31,10 @@ class OfflineGenerationError(Exception):
|
|||||||
Offline compression generation related exceptions
|
Offline compression generation related exceptions
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class FilterDoesNotExist(Exception):
|
||||||
|
"""
|
||||||
|
Raised when a filter class cannot be found.
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|||||||
Reference in New Issue
Block a user