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.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(

View File

@@ -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