summaryrefslogtreecommitdiff
path: root/src/mailman/core/initialize.py
diff options
context:
space:
mode:
authorBarry Warsaw2012-07-25 17:48:47 -0400
committerBarry Warsaw2012-07-25 17:48:47 -0400
commitc15688eb88db81340a7602093134e10e8927b2fc (patch)
tree11fc83bf64a436fd39492441e3383a109b02d867 /src/mailman/core/initialize.py
parent3ecb13338d36f7f4bccb609bdb2d54ff11359f8f (diff)
downloadmailman-c15688eb88db81340a7602093134e10e8927b2fc.tar.gz
mailman-c15688eb88db81340a7602093134e10e8927b2fc.tar.zst
mailman-c15688eb88db81340a7602093134e10e8927b2fc.zip
Diffstat (limited to 'src/mailman/core/initialize.py')
-rw-r--r--src/mailman/core/initialize.py15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/mailman/core/initialize.py b/src/mailman/core/initialize.py
index b359928cc..3e927cc40 100644
--- a/src/mailman/core/initialize.py
+++ b/src/mailman/core/initialize.py
@@ -40,13 +40,13 @@ import os
import sys
from pkg_resources import resource_string
+from zope.component import getUtility
from zope.configuration import xmlconfig
-from zope.interface.verify import verifyObject
import mailman.config.config
import mailman.core.logging
-from mailman.interfaces.database import IDatabase
+from mailman.interfaces.database import IDatabaseFactory
from mailman.utilities.modules import call_name
# The test infrastructure uses this to prevent the search and loading of any
@@ -125,7 +125,7 @@ def initialize_1(config_path=None):
mailman.config.config.load(config_path)
-def initialize_2(debug=False, propagate_logs=None):
+def initialize_2(debug=False, propagate_logs=None, testing=False):
"""Second initialization step.
* Database
@@ -149,13 +149,8 @@ def initialize_2(debug=False, propagate_logs=None):
call_name(config.mailman.pre_hook)
# Instantiate the database class, ensure that it's of the right type, and
# initialize it. Then stash the object on our configuration object.
- database_class = config.database['class']
- database = call_name(database_class)
- verifyObject(IDatabase, database)
- database.initialize(debug)
- database.load_migrations()
- database.commit()
- config.db = database
+ utility_name = ('testing' if testing else 'production')
+ config.db = getUtility(IDatabaseFactory, utility_name).create()
# Initialize the rules and chains. Do the imports here so as to avoid
# circular imports.
from mailman.app.commands import initialize as initialize_commands