# 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
import urllib
import routes
raise ImproperlyConfigured(
"One of direct_remote_path or direct_remote_paths must be provided")
- setup_celery_from_config(app_config, global_config)
+ if asbool(os.environ.get('CELERY_ALWAYS_EAGER')):
+ setup_celery_from_config(
+ app_config, global_config,
+ force_celery_always_eager=True)
+ else:
+ setup_celery_from_config(app_config, global_config)
mgoblin_app = MediaGoblinApp(
connection, db,
def setup_celery_from_config(app_config, global_config,
settings_module=DEFAULT_SETTINGS_MODULE,
+ force_celery_always_eager=False,
set_environ=True):
"""
Take a mediagoblin app config and the global config from a paste
- app_config: the application config section
- global_config: the entire paste config, all sections
- settings_module: the module to populate, as a string
+ -
- set_environ: if set, this will CELERY_CONFIG_MODULE to the
settings_module
"""
celery_imports = celery_settings.setdefault('CELERY_IMPORTS', [])
celery_imports.extend(MANDATORY_CELERY_IMPORTS)
+ if force_celery_always_eager:
+ celery_settings['CELERY_ALWAYS_EAGER'] = True
+
__import__(settings_module)
this_module = sys.modules[settings_module]