diff options
Diffstat (limited to 'mediagoblin/celery_setup')
-rw-r--r-- | mediagoblin/celery_setup/from_celery.py | 14 | ||||
-rw-r--r-- | mediagoblin/celery_setup/from_tests.py | 26 |
2 files changed, 35 insertions, 5 deletions
diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py index 45e65e52..046aaa50 100644 --- a/mediagoblin/celery_setup/from_celery.py +++ b/mediagoblin/celery_setup/from_celery.py @@ -23,7 +23,7 @@ from mediagoblin.celery_setup import setup_celery_from_config OUR_MODULENAME = __name__ -def setup_self(): +def setup_self(check_environ_for_conf=True, module_name=OUR_MODULENAME): """ Transform this module into a celery config module by reading the mediagoblin config file. Set the environment variable @@ -34,19 +34,23 @@ def setup_self(): Note that if celery_setup_elsewhere is set in your config file, this simply won't work. """ - mgoblin_conf_file = os.path.abspath( - os.environ.get('MEDIAGOBLIN_CONFIG', 'mediagoblin.ini')) + if check_environ_for_conf: + mgoblin_conf_file = os.path.abspath( + os.environ.get('MEDIAGOBLIN_CONFIG', 'mediagoblin.ini')) + else: + mgoblin_conf_file = 'mediagoblin.ini' + if not os.path.exists(mgoblin_conf_file): raise IOError( "MEDIAGOBLIN_CONFIG not set or file does not exist") # By setting the environment variable here we should ensure that # this is the module that gets set up. - os.environ['CELERY_CONFIG_MODULE'] = OUR_MODULENAME + os.environ['CELERY_CONFIG_MODULE'] = module_name app.MediaGoblinApp(mgoblin_conf_file, setup_celery=False) setup_celery_from_config( mg_globals.app_config, mg_globals.global_config, - settings_module=OUR_MODULENAME, + settings_module=module_name, set_environ=False) diff --git a/mediagoblin/celery_setup/from_tests.py b/mediagoblin/celery_setup/from_tests.py new file mode 100644 index 00000000..43032f41 --- /dev/null +++ b/mediagoblin/celery_setup/from_tests.py @@ -0,0 +1,26 @@ +# 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/>. + +import os + +from mediagoblin.celery_setup.from_celery import setup_self + + +OUR_MODULENAME = __name__ + + +if os.environ.get('CELERY_CONFIG_MODULE') == OUR_MODULENAME: + setup_self(check_environ_for_conf=False, module_name=OUR_MODULENAME) |