diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-08-12 19:59:19 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-08-12 19:59:19 -0500 |
commit | 4b860cb823fd160742ab050f481eb65e389f9a7b (patch) | |
tree | 0729c9b509e9c78e28ebf035f5317e6d96efaa16 /mediagoblin/process_media/errors.py | |
parent | fabdccd0114cc75f2191419dcd708d7858718a45 (diff) | |
download | mediagoblin-4b860cb823fd160742ab050f481eb65e389f9a7b.tar.lz mediagoblin-4b860cb823fd160742ab050f481eb65e389f9a7b.tar.xz mediagoblin-4b860cb823fd160742ab050f481eb65e389f9a7b.zip |
Create processing errors and raise BadMediaFail on failure to load the image
Diffstat (limited to 'mediagoblin/process_media/errors.py')
-rw-r--r-- | mediagoblin/process_media/errors.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/mediagoblin/process_media/errors.py b/mediagoblin/process_media/errors.py new file mode 100644 index 00000000..f2ae87ff --- /dev/null +++ b/mediagoblin/process_media/errors.py @@ -0,0 +1,54 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +from mediagoblin.util import lazy_pass_to_ugettext as _ + +class BaseProcessingFail(Exception): + """ + Base exception that all other processing failure messages should + subclass from. + + You shouldn't call this itself; instead you should subclass it + and provid the exception_path and general_message applicable to + this error. + """ + general_message = u'' + + @property + def exception_path(self): + return u"%s.%s" % ( + self.__class__.__module__, self.__class__.__name__) + + def __init__(self, **metadata): + self.metadata = metadata or {} + + def generate_error_message(self): + """ + Generate an error to display to users in the panel. + + Uses this class's general_message, possibly interpolated + with any metadata in self.metadata['error_message_vars'], + if appropriate. + """ + return self.general_message % self.metadata.get('error_message_vars', {}) + + +class BadMediaFail(BaseProcessingFail): + """ + Error that should be raised when an inappropriate file was given + for the media type specified. + """ + general_message = _(u'Invalid file given for media type.') |