------------------------------------------------------------
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