------------------------------------------------------------
revno: 6793
committer: Barry Warsaw <[email protected]>
branch nick: 3.0
timestamp: Wed 2009-08-26 22:44:22 -0400
message:
  As before, replace config.db.requests and config.db.pendings with utilities.
modified:
  src/mailman/app/moderator.py
  src/mailman/app/registrar.py
  src/mailman/bin/checkdbs.py
  src/mailman/chains/hold.py
  src/mailman/config/configure.zcml
  src/mailman/database/__init__.py
  src/mailman/database/requests.py
  src/mailman/docs/chains.txt
  src/mailman/docs/pending.txt
  src/mailman/docs/registration.txt
  src/mailman/docs/requests.txt
  src/mailman/interfaces/database.py
  src/mailman/rules/docs/emergency.txt


--
lp:mailman
https://code.launchpad.net/~mailman-coders/mailman/3.0

Your team Mailman Checkins is subscribed to branch lp:mailman.
To unsubscribe from this branch go to 
https://code.launchpad.net/~mailman-coders/mailman/3.0/+edit-subscription.
=== modified file 'src/mailman/app/moderator.py'
--- src/mailman/app/moderator.py	2009-08-27 02:29:20 +0000
+++ src/mailman/app/moderator.py	2009-08-27 02:44:22 +0000
@@ -46,7 +46,7 @@
 from mailman.interfaces.action import Action
 from mailman.interfaces.member import AlreadySubscribedError, DeliveryMode
 from mailman.interfaces.messages import IMessageStore
-from mailman.interfaces.requests import RequestType
+from mailman.interfaces.requests import IRequests, RequestType
 
 
 _ = i18n._
@@ -96,7 +96,7 @@
     msgdata['_mod_reason'] = reason
     msgdata['_mod_hold_date'] = datetime.now().isoformat()
     # Now hold this request.  We'll use the message_id as the key.
-    requestsdb = config.db.requests.get_list_requests(mlist)
+    requestsdb = getUtility(IRequests).get_list_requests(mlist)
     request_id = requestsdb.hold_request(
         RequestType.held_message, message_id, msgdata)
     return request_id
@@ -106,7 +106,7 @@
 def handle_message(mlist, id, action,
                    comment=None, preserve=False, forward=None):
     message_store = getUtility(IMessageStore)
-    requestdb = config.db.requests.get_list_requests(mlist)
+    requestdb = getUtility(IRequests).get_list_requests(mlist)
     key, msgdata = requestdb.get_request(id)
     # Handle the action.
     rejection = None
@@ -200,7 +200,7 @@
                 delivery_mode=str(mode),
                 language=language)
     # Now hold this request.  We'll use the address as the key.
-    requestsdb = config.db.requests.get_list_requests(mlist)
+    requestsdb = getUtility(IRequests).get_list_requests(mlist)
     request_id = requestsdb.hold_request(
         RequestType.subscription, address, data)
     vlog.info('%s: held subscription request from %s',
@@ -226,7 +226,7 @@
 
 
 def handle_subscription(mlist, id, action, comment=None):
-    requestdb = config.db.requests.get_list_requests(mlist)
+    requestdb = getUtility(IRequests).get_list_requests(mlist)
     if action is Action.defer:
         # Nothing to do.
         return
@@ -272,7 +272,7 @@
 
 def hold_unsubscription(mlist, address):
     data = dict(address=address)
-    requestsdb = config.db.requests.get_list_requests(mlist)
+    requestsdb = getUtility(IRequests).get_list_requests(mlist)
     request_id = requestsdb.hold_request(
         RequestType.unsubscription, address, data)
     vlog.info('%s: held unsubscription request from %s',
@@ -298,7 +298,7 @@
 
 
 def handle_unsubscription(mlist, id, action, comment=None):
-    requestdb = config.db.requests.get_list_requests(mlist)
+    requestdb = getUtility(IRequests).get_list_requests(mlist)
     key, data = requestdb.get_request(id)
     address = data['address']
     if action is Action.defer:

=== modified file 'src/mailman/app/registrar.py'
--- src/mailman/app/registrar.py	2009-08-26 14:51:52 +0000
+++ src/mailman/app/registrar.py	2009-08-27 02:44:22 +0000
@@ -38,7 +38,7 @@
 from mailman.interfaces.domain import IDomain
 from mailman.interfaces.listmanager import IListManager
 from mailman.interfaces.member import MemberRole
-from mailman.interfaces.pending import IPendable
+from mailman.interfaces.pending import IPendable, IPendings
 from mailman.interfaces.registrar import IRegistrar
 from mailman.interfaces.usermanager import IUserManager
 
@@ -68,7 +68,7 @@
             real_name=real_name)
         if mlist is not None:
             pendable['list_name'] = mlist.fqdn_listname
-        token = config.db.pendings.add(pendable)
+        token = getUtility(IPendings).add(pendable)
         # Set up some local variables for translation interpolation.
         domain = IDomain(self._context)
         domain_name = _(domain.email_host)
@@ -89,7 +89,7 @@
     def confirm(self, token):
         """See `IUserRegistrar`."""
         # For convenience
-        pendable = config.db.pendings.confirm(token)
+        pendable = getUtility(IPendings).confirm(token)
         if pendable is None:
             return False
         missing = object()
@@ -146,4 +146,4 @@
 
     def discard(self, token):
         # Throw the record away.
-        config.db.pendings.confirm(token)
+        getUtility(IPendings).confirm(token)

=== modified file 'src/mailman/bin/checkdbs.py'
--- src/mailman/bin/checkdbs.py	2009-02-13 03:26:28 +0000
+++ src/mailman/bin/checkdbs.py	2009-08-27 02:44:22 +0000
@@ -20,6 +20,7 @@
 import optparse
 
 from email.Charset import Charset
+from zope.component import getUtility
 
 from mailman import MailList
 from mailman import Utils
@@ -27,6 +28,7 @@
 from mailman.app.requests import handle_request
 from mailman.configuration import config
 from mailman.email.message import UserNotification
+from mailman.interfaces.requests import IRequests
 from mailman.version import MAILMAN_VERSION
 
 _ = i18n._
@@ -159,7 +161,7 @@
         # The list must be locked in order to open the requests database
         mlist = MailList.MailList(name)
         try:
-            count = config.db.requests.get_list_requests(mlist).count
+            count = getUtility(IRequests).get_list_requests(mlist).count
             # While we're at it, let's evict yesterday's autoresponse data
             midnight_today = midnight()
             evictions = []

=== modified file 'src/mailman/chains/hold.py'
--- src/mailman/chains/hold.py	2009-08-26 14:51:52 +0000
+++ src/mailman/chains/hold.py	2009-08-27 02:44:22 +0000
@@ -41,7 +41,7 @@
 from mailman.config import config
 from mailman.email.message import UserNotification
 from mailman.interfaces.autorespond import IAutoResponseSet, Response
-from mailman.interfaces.pending import IPendable
+from mailman.interfaces.pending import IPendable, IPendings
 from mailman.interfaces.usermanager import IUserManager
 
 
@@ -142,7 +142,7 @@
         # message.
         pendable = HeldMessagePendable(type=HeldMessagePendable.PEND_KEY,
                                        id=request_id)
-        token = config.db.pendings.add(pendable)
+        token = getUtility(IPendings).add(pendable)
         # Get the language to send the response in.  If the sender is a
         # member, then send it in the member's language, otherwise send it in
         # the mailing list's preferred language.

=== modified file 'src/mailman/config/configure.zcml'
--- src/mailman/config/configure.zcml	2009-08-27 02:29:20 +0000
+++ src/mailman/config/configure.zcml	2009-08-27 02:44:22 +0000
@@ -46,4 +46,14 @@
     provides="mailman.interfaces.messages.IMessageStore"
     />
 
+  <utility
+    factory="mailman.database.pending.Pendings"
+    provides="mailman.interfaces.pending.IPendings"
+    />
+
+  <utility
+    factory="mailman.database.requests.Requests"
+    provides="mailman.interfaces.requests.IRequests"
+    />
+
 </configure>

=== modified file 'src/mailman/database/__init__.py'
--- src/mailman/database/__init__.py	2009-08-27 02:29:20 +0000
+++ src/mailman/database/__init__.py	2009-08-27 02:44:22 +0000
@@ -54,8 +54,6 @@
 
     def __init__(self):
         self.url = None
-        self.pendings = None
-        self.requests = None
         self._store = None
 
     def initialize(self, debug=None):
@@ -64,8 +62,6 @@
         # the database at the same time.
         with Lock(os.path.join(config.LOCK_DIR, 'dbcreate.lck')):
             self._create(debug)
-        self.pendings = Pendings()
-        self.requests = Requests()
 
     def begin(self):
         """See `IDatabase`."""

=== modified file 'src/mailman/database/requests.py'
--- src/mailman/database/requests.py	2009-01-17 02:04:21 +0000
+++ src/mailman/database/requests.py	2009-08-27 02:44:22 +0000
@@ -27,12 +27,13 @@
 
 from datetime import timedelta
 from storm.locals import *
+from zope.component import getUtility
 from zope.interface import implements
 
 from mailman.config import config
 from mailman.database.model import Model
 from mailman.database.types import Enum
-from mailman.interfaces.pending import IPendable
+from mailman.interfaces.pending import IPendable, IPendings
 from mailman.interfaces.requests import IListRequests, IRequests, RequestType
 
 
@@ -84,7 +85,7 @@
             # lock this down more later.
             pendable = DataPendable()
             pendable.update(data)
-            token = config.db.pendings.add(pendable, timedelta(days=5000))
+            token = getUtility(IPendings).add(pendable, timedelta(days=5000))
             data_hash = token
         request = _Request(key, request_type, self.mailing_list, data_hash)
         config.db.store.add(request)
@@ -96,7 +97,8 @@
             return None
         if result.data_hash is None:
             return result.key, result.data_hash
-        pendable = config.db.pendings.confirm(result.data_hash, expunge=False)
+        pendable = getUtility(IPendings).confirm(
+            result.data_hash, expunge=False)
         data = dict()
         data.update(pendable)
         return result.key, data
@@ -106,7 +108,7 @@
         if request is None:
             raise KeyError(request_id)
         # Throw away the pended data.
-        config.db.pendings.confirm(request.data_hash)
+        getUtility(IPendings).confirm(request.data_hash)
         config.db.store.remove(request)
 
 

=== modified file 'src/mailman/docs/chains.txt'
--- src/mailman/docs/chains.txt	2009-08-27 02:29:20 +0000
+++ src/mailman/docs/chains.txt	2009-08-27 02:44:22 +0000
@@ -227,14 +227,19 @@
     ...         cookie = mo.group('cookie')
     ...         break
     >>> assert cookie is not None, 'No confirmation token found'
-    >>> data = config.db.pendings.confirm(cookie)
+
+    >>> from mailman.interfaces.pending import IPendings
+    >>> from zope.component import getUtility
+
+    >>> data = getUtility(IPendings).confirm(cookie)
     >>> sorted(data.items())
     [(u'id', ...), (u'type', u'held message')]
 
 The message itself is held in the message store.
 
-    >>> rkey, rdata = config.db.requests.get_list_requests(mlist).get_request(
-    ...     data['id'])
+    >>> from mailman.interfaces.requests import IRequests
+    >>> list_requests = getUtility(IRequests).get_list_requests(mlist)
+    >>> rkey, rdata = list_requests.get_request(data['id'])
 
     >>> from mailman.interfaces.messages import IMessageStore
     >>> from zope.component import getUtility

=== modified file 'src/mailman/docs/pending.txt'
--- src/mailman/docs/pending.txt	2009-07-19 02:31:45 +0000
+++ src/mailman/docs/pending.txt	2009-08-27 02:44:22 +0000
@@ -13,9 +13,8 @@
 available by adapting the list manager.
 
     >>> from mailman.interfaces.pending import IPendings
-    >>> pendingdb = config.db.pendings
-    >>> verifyObject(IPendings, pendingdb)
-    True
+    >>> from zope.component import getUtility
+    >>> pendingdb = getUtility(IPendings)
 
 The pending database can add any IPendable to the database, returning a token
 that can be used in urls and such.

=== modified file 'src/mailman/docs/registration.txt'
--- src/mailman/docs/registration.txt	2009-08-26 14:51:52 +0000
+++ src/mailman/docs/registration.txt	2009-08-27 02:44:22 +0000
@@ -101,7 +101,10 @@
 
 But this address is waiting for confirmation.
 
-    >>> pendingdb = config.db.pendings
+    >>> from mailman.interfaces.pending import IPendings
+    >>> from zope.component import getUtility
+    >>> pendingdb = getUtility(IPendings)
+
     >>> sorted(pendingdb.confirm(token, expunge=False).items())
     [(u'address', u'[email protected]'),
      (u'real_name', u'Anne Person'),

=== modified file 'src/mailman/docs/requests.txt'
--- src/mailman/docs/requests.txt	2009-08-27 02:29:20 +0000
+++ src/mailman/docs/requests.txt	2009-08-27 02:44:22 +0000
@@ -36,11 +36,11 @@
 mailing list you need to get its requests object.
 
     >>> from mailman.interfaces.requests import IListRequests, IRequests
+    >>> from zope.component import getUtility
     >>> from zope.interface.verify import verifyObject
-    >>> verifyObject(IRequests, config.db.requests)
-    True
+
     >>> mlist = create_list('[email protected]')
-    >>> requests = config.db.requests.get_list_requests(mlist)
+    >>> requests = getUtility(IRequests).get_list_requests(mlist)
     >>> verifyObject(IListRequests, requests)
     True
     >>> requests.mailing_list

=== modified file 'src/mailman/interfaces/database.py'
--- src/mailman/interfaces/database.py	2009-08-27 02:29:20 +0000
+++ src/mailman/interfaces/database.py	2009-08-27 02:44:22 +0000
@@ -83,6 +83,3 @@
 
     def abort():
         """Abort the current transaction."""
-
-    pendings = Attribute(
-        """The IPending instance provided by the database layer.""")

=== modified file 'src/mailman/rules/docs/emergency.txt'
--- src/mailman/rules/docs/emergency.txt	2009-08-27 02:29:20 +0000
+++ src/mailman/rules/docs/emergency.txt	2009-08-27 02:44:22 +0000
@@ -30,6 +30,8 @@
     >>> virginq = config.switchboards['virgin']
 
     >>> from mailman.interfaces.messages import IMessageStore
+    >>> from mailman.interfaces.pending import IPendings
+    >>> from mailman.interfaces.requests import IRequests
     >>> from zope.component import getUtility
     >>> message_store = getUtility(IMessageStore)
 
@@ -49,8 +51,8 @@
     ...             cookie = mo.group('cookie')
     ...             break
     ...     assert cookie is not None, 'No confirmation token found'
-    ...     data = config.db.pendings.confirm(cookie)
-    ...     requestdb = config.db.requests.get_list_requests(mlist)
+    ...     data = getUtility(IPendings).confirm(cookie)
+    ...     requestdb = getUtility(IRequests).get_list_requests(mlist)
     ...     rkey, rdata = requestdb.get_request(data['id'])
     ...     return message_store.get_message_by_id(
     ...         rdata['_mod_message_id'])

_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to