Create setup_global_and_app_config
authorElrond <elrond+mediagoblin.org@samba-tng.org>
Mon, 4 Jul 2011 21:57:45 +0000 (23:57 +0200)
committerElrond <elrond+mediagoblin.org@samba-tng.org>
Mon, 4 Jul 2011 21:57:45 +0000 (23:57 +0200)
Moving the config reading and error reporting from app.py
to init/__init__.py. Straight forward.

This also fixes the duplicated exceptions.

mediagoblin/app.py
mediagoblin/init/__init__.py

index ab8549cb75ca03539e98adafc49e0f4eebfbc4ff..0ef670d7f54c87cc6c4e5dbf855a9f141508226d 100644 (file)
@@ -21,19 +21,14 @@ import routes
 from webob import Request, exc
 
 from mediagoblin import routing, util, storage
-from mediagoblin.init.config import (
-    read_mediagoblin_config, generate_validation_report)
 from mediagoblin.db.open import setup_connection_and_db_from_config
 from mediagoblin.mg_globals import setup_globals
 from mediagoblin.init.celery import setup_celery_from_config
-from mediagoblin.init import get_jinja_loader, get_staticdirector
+from mediagoblin.init import get_jinja_loader, get_staticdirector, \
+    setup_global_and_app_config
 from mediagoblin.workbench import WorkbenchManager
 
 
-class Error(Exception): pass
-class ImproperlyConfigured(Error): pass
-
-
 class MediaGoblinApp(object):
     """
     WSGI application of MediaGoblin
@@ -55,13 +50,7 @@ class MediaGoblinApp(object):
         ##############
 
         # Open and setup the config
-        global_config, validation_result = read_mediagoblin_config(config_path)
-        app_config = global_config['mediagoblin']
-        # report errors if necessary
-        validation_report = generate_validation_report(
-            global_config, validation_result)
-        if validation_report:
-            raise ImproperlyConfigured(validation_report)
+        global_config, app_config = setup_global_and_app_config(config_path)
 
         ##########################################
         # Setup other connections / useful objects
index 4bf69158bc19c4017958f54d4e64f964c28af9ba..4a14fdf8b83c71986aa9f9eea4004a58cd4ff822 100644 (file)
 
 import jinja2
 from mediagoblin import staticdirect
+from mediagoblin.init.config import (
+    read_mediagoblin_config, generate_validation_report)
 
 
 class Error(Exception): pass
 class ImproperlyConfigured(Error): pass
 
 
+def setup_global_and_app_config(config_path):
+    global_config, validation_result = read_mediagoblin_config(config_path)
+    app_config = global_config['mediagoblin']
+    # report errors if necessary
+    validation_report = generate_validation_report(
+        global_config, validation_result)
+    if validation_report:
+        raise ImproperlyConfigured(validation_report)
+
+    return global_config, app_config
+
 def get_jinja_loader(user_template_path=None):
     """
     Set up the Jinja template loaders, possibly allowing for user