------------------------------------------------------------
revno: 6539
committer: Barry Warsaw <[EMAIL PROTECTED]>
branch nick: 3.0
timestamp: Thu 2007-08-02 10:47:56 -0400
message:
Refactor IDatabase interface so that the user_manager, list_manager,
message_store, and pendings 'databases' hang off the IDatabase object attached
to the config object. For IPending, no adaptation is necessary.
modified:
Mailman/Handlers/Hold.py
Mailman/Queue/Runner.py
Mailman/app/registrar.py
Mailman/database/__init__.py
Mailman/docs/ack-headers.txt
Mailman/docs/acknowledge.txt
Mailman/docs/addresses.txt
Mailman/docs/after-delivery.txt
Mailman/docs/antispam.txt
Mailman/docs/archives.txt
Mailman/docs/avoid-duplicates.txt
Mailman/docs/bounces.txt
Mailman/docs/calc-recips.txt
Mailman/docs/cleanse.txt
Mailman/docs/cook-headers.txt
Mailman/docs/decorate.txt
Mailman/docs/digests.txt
Mailman/docs/file-recips.txt
Mailman/docs/filtering.txt
Mailman/docs/hold.txt
Mailman/docs/listmanager.txt
Mailman/docs/membership.txt
Mailman/docs/message.txt
Mailman/docs/messagestore.txt
Mailman/docs/mlist-addresses.txt
Mailman/docs/news-runner.txt
Mailman/docs/nntp.txt
Mailman/docs/outgoing.txt
Mailman/docs/pending.txt
Mailman/docs/registration.txt
Mailman/docs/reply-to.txt
Mailman/docs/replybot.txt
Mailman/docs/runner.txt
Mailman/docs/scrubber.txt
Mailman/docs/subject-munging.txt
Mailman/docs/tagger.txt
Mailman/docs/usermanager.txt
Mailman/docs/users.txt
Mailman/initialize.py
Mailman/interfaces/database.py
Mailman/tests/test_documentation.py
=== modified file 'Mailman/Handlers/Hold.py'
--- a/Mailman/Handlers/Hold.py 2007-08-01 21:05:06 +0000
+++ b/Mailman/Handlers/Hold.py 2007-08-02 14:47:56 +0000
@@ -42,7 +42,7 @@
from Mailman import Utils
from Mailman import i18n
from Mailman.configuration import config
-from Mailman.interfaces import IPendable, IPending
+from Mailman.interfaces import IPendable
log = logging.getLogger('mailman.vette')
@@ -249,7 +249,7 @@
# bounce processing that might be needed.
pendable = HeldMessagePendable(type=HeldMessagePendable.PEND_KEY,
id=str(id))
- token = IPending(config.db).add(pendable)
+ token = config.db.pendings.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 'Mailman/Queue/Runner.py'
--- a/Mailman/Queue/Runner.py 2007-06-28 05:11:50 +0000
+++ b/Mailman/Queue/Runner.py 2007-08-02 14:47:56 +0000
@@ -147,7 +147,7 @@
#
# Find out which mailing list this message is destined for.
listname = msgdata.get('listname')
- mlist = config.list_manager.get(listname)
+ mlist = config.db.list_manager.get(listname)
if not mlist:
log.error('Dequeuing message destined for missing list: %s',
listname)
=== modified file 'Mailman/app/registrar.py'
--- a/Mailman/app/registrar.py 2007-08-01 20:11:08 +0000
+++ b/Mailman/app/registrar.py 2007-08-02 14:47:56 +0000
@@ -32,7 +32,7 @@
from Mailman.Utils import ValidateEmail
from Mailman.configuration import config
from Mailman.i18n import _
-from Mailman.interfaces import IDomain, IPendable, IPending, IRegistrar
+from Mailman.interfaces import IDomain, IPendable, IRegistrar
__i18n_templates__ = True
@@ -57,7 +57,7 @@
ValidateEmail(address)
# Check to see if there is already a verified IAddress in the database
# matching this address. If so, there's nothing to do.
- usermgr = config.user_manager
+ usermgr = config.db.user_manager
addr = usermgr.get_address(address)
if addr and addr.verified_on:
# Before returning, see if this address is linked to a user. If
@@ -73,8 +73,7 @@
pendable = PendableRegistration(type=PendableRegistration.PEND_KEY,
address=address,
real_name=real_name)
- pendingdb = IPending(config.db)
- token = pendingdb.add(pendable)
+ token = config.db.pendings.add(pendable)
# Set up some local variables for translation interpolation.
domain = IDomain(self._context)
domain_name = _(domain.domain_name)
@@ -96,8 +95,7 @@
def confirm(self, token):
"""See `IUserRegistrar`."""
# For convenience
- pendingdb = IPending(config.db)
- pendable = pendingdb.confirm(token)
+ pendable = config.db.pendings.confirm(token)
if pendable is None:
return False
missing = object()
@@ -114,7 +112,7 @@
# We are going to end up with an IAddress for the verified address
# and an IUser linked to this IAddress. See if any of these objects
# currently exist in our database.
- usermgr = config.user_manager
+ usermgr = config.db.user_manager
addr = usermgr.get_address(address)
user = usermgr.get_user(address)
# If there is neither an address nor a user matching the confirmed
@@ -144,6 +142,5 @@
return True
def discard(self, token):
- pendingdb = IPending(config.db)
# Throw the record away.
- pendingdb.confirm(token)
+ config.db.pendings.confirm(token)
=== modified file 'Mailman/database/__init__.py'
--- a/Mailman/database/__init__.py 2007-08-01 20:11:08 +0000
+++ b/Mailman/database/__init__.py 2007-08-02 14:47:56 +0000
@@ -50,6 +50,7 @@
self.list_manager = None
self.user_manager = None
self.message_store = None
+ self.pendings = None
def initialize(self):
from Mailman.LockFile import LockFile
@@ -63,13 +64,8 @@
self.list_manager = ListManager()
self.user_manager = UserManager()
self.message_store = MessageStore()
+ self.pendings = Pendings()
self.flush()
def flush(self):
objectstore.flush()
-
- def __conform__(self, protocol):
- if protocol is IPending:
- return Pendings()
- # Let the rest of the adaptation machinery take a crack at it.
- return None
=== modified file 'Mailman/docs/ack-headers.txt'
--- a/Mailman/docs/ack-headers.txt 2007-06-22 21:15:03 +0000
+++ b/Mailman/docs/ack-headers.txt 2007-08-02 14:47:56 +0000
@@ -12,7 +12,7 @@
>>> from Mailman.Handlers.CookHeaders import process
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.subject_prefix = u''
>>> flush()
=== modified file 'Mailman/docs/acknowledge.txt'
--- a/Mailman/docs/acknowledge.txt 2007-07-17 03:55:49 +0000
+++ b/Mailman/docs/acknowledge.txt 2007-08-02 14:47:56 +0000
@@ -10,7 +10,7 @@
>>> from Mailman.Handlers.Acknowledge import process
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.real_name = 'XTest'
>>> mlist.preferred_language = 'en'
>>> # XXX This will almost certainly change once we've worked out the web
@@ -27,8 +27,9 @@
Subscribe a user to the mailing list.
+ >>> usermgr = config.db.user_manager
>>> from Mailman.constants import MemberRole
- >>> user_1 = config.user_manager.create_user('[EMAIL PROTECTED]')
+ >>> user_1 = usermgr.create_user('[EMAIL PROTECTED]')
>>> address_1 = list(user_1.addresses)[0]
>>> address_1.subscribe(mlist, MemberRole.member)
<Member: [EMAIL PROTECTED] on [EMAIL PROTECTED] as MemberRole.member>
@@ -77,7 +78,7 @@
that sender is a member but not one who has requested acknowledgments, none
will be sent.
- >>> user_2 = config.user_manager.create_user('[EMAIL PROTECTED]')
+ >>> user_2 = usermgr.create_user('[EMAIL PROTECTED]')
>>> address_2 = list(user_2.addresses)[0]
>>> address_2.subscribe(mlist, MemberRole.member)
<Member: [EMAIL PROTECTED] on [EMAIL PROTECTED] as MemberRole.member>
=== modified file 'Mailman/docs/addresses.txt'
--- a/Mailman/docs/addresses.txt 2007-08-01 21:05:06 +0000
+++ b/Mailman/docs/addresses.txt 2007-08-02 14:47:56 +0000
@@ -8,7 +8,7 @@
>>> from Mailman.database import flush
>>> from Mailman.configuration import config
- >>> mgr = config.user_manager
+ >>> usermgr = config.db.user_manager
Creating addresses
@@ -17,14 +17,14 @@
Addresses are created directly through the user manager, which starts out with
no addresses.
- >>> sorted(address.address for address in mgr.addresses)
+ >>> sorted(address.address for address in usermgr.addresses)
[]
Creating an unlinked email address is straightforward.
- >>> address_1 = mgr.create_address('[EMAIL PROTECTED]')
+ >>> address_1 = usermgr.create_address('[EMAIL PROTECTED]')
>>> flush()
- >>> sorted(address.address for address in mgr.addresses)
+ >>> sorted(address.address for address in usermgr.addresses)
['[EMAIL PROTECTED]']
However, such addresses have no real name.
@@ -34,11 +34,11 @@
You can also create an email address object with a real name.
- >>> address_2 = mgr.create_address('[EMAIL PROTECTED]', 'Ben Person')
+ >>> address_2 = usermgr.create_address('[EMAIL PROTECTED]', 'Ben Person')
>>> flush()
- >>> sorted(address.address for address in mgr.addresses)
+ >>> sorted(address.address for address in usermgr.addresses)
['[EMAIL PROTECTED]', '[EMAIL PROTECTED]']
- >>> sorted(address.real_name for address in mgr.addresses)
+ >>> sorted(address.real_name for address in usermgr.addresses)
['', 'Ben Person']
The str() of the address is the RFC 2822 preferred originator format, while
@@ -53,34 +53,34 @@
>>> address_1.real_name = 'Anne Person'
>>> flush()
- >>> sorted(address.real_name for address in mgr.addresses)
+ >>> sorted(address.real_name for address in usermgr.addresses)
['Anne Person', 'Ben Person']
These addresses are not linked to users, and can be seen by searching the user
manager for an associated user.
- >>> print mgr.get_user('[EMAIL PROTECTED]')
+ >>> print usermgr.get_user('[EMAIL PROTECTED]')
None
- >>> print mgr.get_user('[EMAIL PROTECTED]')
+ >>> print usermgr.get_user('[EMAIL PROTECTED]')
None
You can create email addresses that are linked to users by using a different
interface.
- >>> user_1 = mgr.create_user('[EMAIL PROTECTED]', 'Claire Person')
+ >>> user_1 = usermgr.create_user('[EMAIL PROTECTED]', 'Claire Person')
>>> flush()
- >>> sorted(address.address for address in mgr.addresses)
+ >>> sorted(address.address for address in usermgr.addresses)
['[EMAIL PROTECTED]', '[EMAIL PROTECTED]', '[EMAIL PROTECTED]']
- >>> sorted(address.real_name for address in mgr.addresses)
+ >>> sorted(address.real_name for address in usermgr.addresses)
['Anne Person', 'Ben Person', 'Claire Person']
And now you can find the associated user.
- >>> print mgr.get_user('[EMAIL PROTECTED]')
- None
- >>> print mgr.get_user('[EMAIL PROTECTED]')
- None
- >>> mgr.get_user('[EMAIL PROTECTED]')
+ >>> print usermgr.get_user('[EMAIL PROTECTED]')
+ None
+ >>> print usermgr.get_user('[EMAIL PROTECTED]')
+ None
+ >>> usermgr.get_user('[EMAIL PROTECTED]')
<User "Claire Person" at ...>
@@ -89,11 +89,11 @@
You can remove an unlinked address from the usre manager.
- >>> mgr.delete_address(address_1)
+ >>> usermgr.delete_address(address_1)
>>> flush()
- >>> sorted(address.address for address in mgr.addresses)
+ >>> sorted(address.address for address in usermgr.addresses)
['[EMAIL PROTECTED]', '[EMAIL PROTECTED]']
- >>> sorted(address.real_name for address in mgr.addresses)
+ >>> sorted(address.real_name for address in usermgr.addresses)
['Ben Person', 'Claire Person']
Deleting a linked address does not delete the user, but it does unlink the
@@ -104,13 +104,13 @@
>>> user_1.controls('[EMAIL PROTECTED]')
True
>>> address_3 = list(user_1.addresses)[0]
- >>> mgr.delete_address(address_3)
+ >>> usermgr.delete_address(address_3)
>>> flush()
>>> sorted(address.address for address in user_1.addresses)
[]
>>> user_1.controls('[EMAIL PROTECTED]')
False
- >>> sorted(address.address for address in mgr.addresses)
+ >>> sorted(address.address for address in usermgr.addresses)
['[EMAIL PROTECTED]']
@@ -120,7 +120,7 @@
Addresses have two dates, the date the address was registered on and the date
the address was validated on. Neither date is set by default.
- >>> address_4 = mgr.create_address('[EMAIL PROTECTED]', 'Dan Person')
+ >>> address_4 = usermgr.create_address('[EMAIL PROTECTED]', 'Dan Person')
>>> flush()
>>> print address_4.registered_on
None
@@ -153,8 +153,8 @@
Addresses get subscribed to mailing lists, not users. When the address is
subscribed, a role is specified.
- >>> address_5 = mgr.create_address('[EMAIL PROTECTED]', 'Elly Person')
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> address_5 = usermgr.create_address('[EMAIL PROTECTED]', 'Elly Person')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> from Mailman.constants import MemberRole
>>> address_5.subscribe(mlist, MemberRole.owner)
<Member: Elly Person <[EMAIL PROTECTED]> on
@@ -192,7 +192,8 @@
when sending the user a message, but it treats addresses that are different in
case equivalently in all other situations.
- >>> address_6 = mgr.create_address('[EMAIL PROTECTED]', 'Frank Person')
+ >>> address_6 = usermgr.create_address(
+ ... '[EMAIL PROTECTED]', 'Frank Person')
>>> flush()
The str() of such an address prints the RFC 2822 preferred originator format
@@ -216,15 +217,15 @@
Because addresses are case-insensitive for all other purposes, you cannot
create an address that differs only in case.
- >>> mgr.create_address('[EMAIL PROTECTED]')
- Traceback (most recent call last):
- ...
- ExistingAddressError: [EMAIL PROTECTED]
- >>> mgr.create_address('[EMAIL PROTECTED]')
- Traceback (most recent call last):
- ...
- ExistingAddressError: [EMAIL PROTECTED]
- >>> mgr.create_address('[EMAIL PROTECTED]')
+ >>> usermgr.create_address('[EMAIL PROTECTED]')
+ Traceback (most recent call last):
+ ...
+ ExistingAddressError: [EMAIL PROTECTED]
+ >>> usermgr.create_address('[EMAIL PROTECTED]')
+ Traceback (most recent call last):
+ ...
+ ExistingAddressError: [EMAIL PROTECTED]
+ >>> usermgr.create_address('[EMAIL PROTECTED]')
Traceback (most recent call last):
...
ExistingAddressError: [EMAIL PROTECTED]
@@ -232,7 +233,7 @@
You can get the address using either the lower cased version or case-preserved
version. In fact, searching for an address is case insensitive.
- >>> mgr.get_address('[EMAIL PROTECTED]').address
+ >>> usermgr.get_address('[EMAIL PROTECTED]').address
'[EMAIL PROTECTED]'
- >>> mgr.get_address('[EMAIL PROTECTED]').address
+ >>> usermgr.get_address('[EMAIL PROTECTED]').address
'[EMAIL PROTECTED]'
=== modified file 'Mailman/docs/after-delivery.txt'
--- a/Mailman/docs/after-delivery.txt 2007-06-22 21:15:03 +0000
+++ b/Mailman/docs/after-delivery.txt 2007-08-02 14:47:56 +0000
@@ -11,7 +11,7 @@
>>> from Mailman.Handlers.AfterDelivery import process
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> post_time = datetime.datetime.now() - datetime.timedelta(minutes=10)
>>> mlist.last_post_time = post_time
>>> mlist.post_id = 10
=== modified file 'Mailman/docs/antispam.txt'
--- a/Mailman/docs/antispam.txt 2007-07-05 14:29:40 +0000
+++ b/Mailman/docs/antispam.txt 2007-08-02 14:47:56 +0000
@@ -15,7 +15,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
>>> from email import message_from_string
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> flush()
=== modified file 'Mailman/docs/archives.txt'
--- a/Mailman/docs/archives.txt 2007-07-22 23:52:34 +0000
+++ b/Mailman/docs/archives.txt 2007-08-02 14:47:56 +0000
@@ -13,7 +13,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
>>> from email import message_from_string
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.preferred_language = 'en'
>>> flush()
>>> switchboard = Switchboard(config.ARCHQUEUE_DIR)
=== modified file 'Mailman/docs/avoid-duplicates.txt'
--- a/Mailman/docs/avoid-duplicates.txt 2007-06-22 21:15:03 +0000
+++ b/Mailman/docs/avoid-duplicates.txt 2007-08-02 14:47:56 +0000
@@ -11,14 +11,14 @@
>>> from Mailman.Handlers.AvoidDuplicates import process
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> flush()
Create some members we're going to use.
>>> from Mailman.constants import MemberRole
- >>> address_a = config.user_manager.create_address('[EMAIL PROTECTED]')
- >>> address_b = config.user_manager.create_address('[EMAIL PROTECTED]')
+ >>> address_a = config.db.user_manager.create_address('[EMAIL PROTECTED]')
+ >>> address_b = config.db.user_manager.create_address('[EMAIL PROTECTED]')
>>> member_a = address_a.subscribe(mlist, MemberRole.member)
>>> member_b = address_b.subscribe(mlist, MemberRole.member)
>>> flush()
=== modified file 'Mailman/docs/bounces.txt'
--- a/Mailman/docs/bounces.txt 2007-07-02 03:31:21 +0000
+++ b/Mailman/docs/bounces.txt 2007-08-02 14:47:56 +0000
@@ -15,7 +15,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.preferred_language = u'en'
>>> flush()
=== modified file 'Mailman/docs/calc-recips.txt'
--- a/Mailman/docs/calc-recips.txt 2007-06-22 21:15:03 +0000
+++ b/Mailman/docs/calc-recips.txt 2007-08-02 14:47:56 +0000
@@ -10,19 +10,20 @@
>>> from Mailman.Handlers.CalcRecips import process
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> flush()
Recipients are calculate from the list members, so add a bunch of members to
start out with. First, create a bunch of addresses...
- >>> address_a = config.user_manager.create_address('[EMAIL PROTECTED]')
- >>> address_b = config.user_manager.create_address('[EMAIL PROTECTED]')
- >>> address_c = config.user_manager.create_address('[EMAIL PROTECTED]')
- >>> address_d = config.user_manager.create_address('[EMAIL PROTECTED]')
- >>> address_e = config.user_manager.create_address('[EMAIL PROTECTED]')
- >>> address_f = config.user_manager.create_address('[EMAIL PROTECTED]')
+ >>> usermgr = config.db.user_manager
+ >>> address_a = usermgr.create_address('[EMAIL PROTECTED]')
+ >>> address_b = usermgr.create_address('[EMAIL PROTECTED]')
+ >>> address_c = usermgr.create_address('[EMAIL PROTECTED]')
+ >>> address_d = usermgr.create_address('[EMAIL PROTECTED]')
+ >>> address_e = usermgr.create_address('[EMAIL PROTECTED]')
+ >>> address_f = usermgr.create_address('[EMAIL PROTECTED]')
...then subscribe these addresses to the mailing list as members...
=== modified file 'Mailman/docs/cleanse.txt'
--- a/Mailman/docs/cleanse.txt 2007-06-22 21:15:03 +0000
+++ b/Mailman/docs/cleanse.txt 2007-08-02 14:47:56 +0000
@@ -10,7 +10,7 @@
>>> from Mailman.Handlers.Cleanse import process
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> flush()
Headers such as Approved, Approve, and Urgent are used to grant special
=== modified file 'Mailman/docs/cook-headers.txt'
--- a/Mailman/docs/cook-headers.txt 2007-06-22 21:15:03 +0000
+++ b/Mailman/docs/cook-headers.txt 2007-08-02 14:47:56 +0000
@@ -12,7 +12,7 @@
>>> from Mailman.Handlers.CookHeaders import process
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.subject_prefix = u''
>>> mlist.include_list_post_header = False
>>> mlist.archive = True
=== modified file 'Mailman/docs/decorate.txt'
--- a/Mailman/docs/decorate.txt 2007-05-31 05:01:00 +0000
+++ b/Mailman/docs/decorate.txt 2007-08-02 14:47:56 +0000
@@ -9,7 +9,7 @@
>>> from Mailman.Handlers.Decorate import process
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> flush()
>>> msg_text = """\
... From: [EMAIL PROTECTED]
=== modified file 'Mailman/docs/digests.txt'
--- a/Mailman/docs/digests.txt 2007-07-17 21:39:53 +0000
+++ b/Mailman/docs/digests.txt 2007-08-02 14:47:56 +0000
@@ -12,7 +12,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
>>> from email import message_from_string
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.preferred_language = 'en'
>>> mlist.web_page_url = 'http://www.example.com/'
>>> mlist.real_name = 'XTest'
=== modified file 'Mailman/docs/file-recips.txt'
--- a/Mailman/docs/file-recips.txt 2007-07-02 22:45:13 +0000
+++ b/Mailman/docs/file-recips.txt 2007-08-02 14:47:56 +0000
@@ -10,7 +10,7 @@
>>> from Mailman.Handlers.FileRecips import process
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> flush()
@@ -84,7 +84,7 @@
in the recipients list.
>>> from Mailman.constants import MemberRole
- >>> address_1 = config.user_manager.create_address('[EMAIL PROTECTED]')
+ >>> address_1 = config.db.user_manager.create_address('[EMAIL PROTECTED]')
>>> address_1.subscribe(mlist, MemberRole.member)
<Member: [EMAIL PROTECTED] on [EMAIL PROTECTED] as MemberRole.member>
>>> flush()
=== modified file 'Mailman/docs/filtering.txt'
--- a/Mailman/docs/filtering.txt 2007-07-06 03:01:23 +0000
+++ b/Mailman/docs/filtering.txt 2007-08-02 14:47:56 +0000
@@ -11,7 +11,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
>>> from email import message_from_string
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.preferred_language = 'en'
>>> flush()
=== modified file 'Mailman/docs/hold.txt'
--- a/Mailman/docs/hold.txt 2007-08-01 21:05:06 +0000
+++ b/Mailman/docs/hold.txt 2007-08-02 14:47:56 +0000
@@ -11,7 +11,7 @@
>>> from Mailman.Queue.Switchboard import Switchboard
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.preferred_language = 'en'
>>> mlist.real_name = '_XTest'
>>> # XXX This will almost certainly change once we've worked out the web
@@ -353,8 +353,7 @@
... if mo:
... cookie = mo.group('cookie')
... break
- >>> from Mailman.interfaces import IPending
- >>> data = IPending(config.db).confirm(cookie)
+ >>> data = config.db.pendings.confirm(cookie)
>>> sorted(data.items())
[('id', '...'), ('type', 'held message')]
>>> filename = '[EMAIL PROTECTED]' % data['id']
=== modified file 'Mailman/docs/listmanager.txt'
--- a/Mailman/docs/listmanager.txt 2007-06-09 22:16:29 +0000
+++ b/Mailman/docs/listmanager.txt 2007-08-02 14:47:56 +0000
@@ -9,9 +9,9 @@
>>> from Mailman.database import flush
>>> from Mailman.configuration import config
>>> from Mailman.interfaces import IListManager
- >>> IListManager.providedBy(config.list_manager)
+ >>> listmgr = config.db.list_manager
+ >>> IListManager.providedBy(listmgr)
True
- >>> mgr = config.list_manager
Creating a mailing list
@@ -20,7 +20,7 @@
Creating the list returns the newly created IMailList object.
>>> from Mailman.interfaces import IMailingList
- >>> mlist = mgr.create('[EMAIL PROTECTED]')
+ >>> mlist = listmgr.create('[EMAIL PROTECTED]')
>>> flush()
>>> IMailingList.providedBy(mlist)
True
@@ -45,7 +45,7 @@
If you try to create a mailing list with the same name as an existing list,
you will get an exception.
- >>> mlist_dup = mgr.create('[EMAIL PROTECTED]')
+ >>> mlist_dup = listmgr.create('[EMAIL PROTECTED]')
Traceback (most recent call last):
...
MMListAlreadyExistsError: [EMAIL PROTECTED]
@@ -56,9 +56,9 @@
Use the list manager to delete a mailing list.
- >>> mgr.delete(mlist)
+ >>> listmgr.delete(mlist)
>>> flush()
- >>> sorted(mgr.names)
+ >>> sorted(listmgr.names)
[]
Attempting to access attributes of the deleted mailing list raises an
@@ -71,7 +71,7 @@
After deleting the list, you can create it again.
- >>> mlist = mgr.create('[EMAIL PROTECTED]')
+ >>> mlist = listmgr.create('[EMAIL PROTECTED]')
>>> flush()
>>> mlist.fqdn_listname
'[EMAIL PROTECTED]'
@@ -83,14 +83,14 @@
When a mailing list exists, you can ask the list manager for it and you will
always get the same object back.
- >>> mlist_2 = mgr.get('[EMAIL PROTECTED]')
+ >>> mlist_2 = listmgr.get('[EMAIL PROTECTED]')
>>> mlist_2 is mlist
True
Don't try to get a list that doesn't exist yet though, or you will get an
exception.
- >>> mgr.get('[EMAIL PROTECTED]')
+ >>> listmgr.get('[EMAIL PROTECTED]')
Traceback (most recent call last):
...
MMUnknownListError: [EMAIL PROTECTED]
@@ -102,18 +102,18 @@
Once you've created a bunch of mailing lists, you can use the list manager to
iterate over either the list objects, or the list names.
- >>> mlist_3 = mgr.create('[EMAIL PROTECTED]')
- >>> mlist_4 = mgr.create('[EMAIL PROTECTED]')
+ >>> mlist_3 = listmgr.create('[EMAIL PROTECTED]')
+ >>> mlist_4 = listmgr.create('[EMAIL PROTECTED]')
>>> flush()
- >>> sorted(mgr.names)
+ >>> sorted(listmgr.names)
['[EMAIL PROTECTED]', '[EMAIL PROTECTED]', '[EMAIL PROTECTED]']
- >>> sorted(m.fqdn_listname for m in mgr.mailing_lists)
+ >>> sorted(m.fqdn_listname for m in listmgr.mailing_lists)
['[EMAIL PROTECTED]', '[EMAIL PROTECTED]', '[EMAIL PROTECTED]']
Cleaning up
-----------
- >>> for mlist in mgr.mailing_lists:
- ... mgr.delete(mlist)
+ >>> for mlist in listmgr.mailing_lists:
+ ... listmgr.delete(mlist)
>>> flush()
=== modified file 'Mailman/docs/membership.txt'
--- a/Mailman/docs/membership.txt 2007-06-22 21:15:03 +0000
+++ b/Mailman/docs/membership.txt 2007-08-02 14:47:56 +0000
@@ -16,7 +16,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> flush()
>>> mlist
<mailing list "[EMAIL PROTECTED]" (unlocked) at ...>
@@ -65,8 +65,8 @@
assigning roles to users. First we have to create the user, because there are
no users in the user database yet.
- >>> user_1 = config.user_manager.create_user(
- ... '[EMAIL PROTECTED]', 'Anne Person')
+ >>> usermgr = config.db.user_manager
+ >>> user_1 = usermgr.create_user('[EMAIL PROTECTED]', 'Anne Person')
>>> flush()
>>> user_1.real_name
'Anne Person'
@@ -104,8 +104,7 @@
We can add Ben as a moderator of the list, by creating a different member role
for him.
- >>> user_2 = config.user_manager.create_user(
- ... '[EMAIL PROTECTED]', 'Ben Person')
+ >>> user_2 = usermgr.create_user('[EMAIL PROTECTED]', 'Ben Person')
>>> flush()
>>> user_2.real_name
'Ben Person'
@@ -144,8 +143,7 @@
preference, then the user's preference, then the list's preference. Start
without any member preference to see the system defaults.
- >>> user_3 = config.user_manager.create_user(
- ... '[EMAIL PROTECTED]', 'Claire Person')
+ >>> user_3 = usermgr.create_user('[EMAIL PROTECTED]', 'Claire Person')
>>> flush()
>>> user_3.real_name
'Claire Person'
=== modified file 'Mailman/docs/message.txt'
--- a/Mailman/docs/message.txt 2007-07-02 03:31:21 +0000
+++ b/Mailman/docs/message.txt 2007-08-02 14:47:56 +0000
@@ -14,7 +14,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.preferred_language = u'en'
>>> flush()
=== modified file 'Mailman/docs/messagestore.txt'
--- a/Mailman/docs/messagestore.txt 2007-07-22 23:52:34 +0000
+++ b/Mailman/docs/messagestore.txt 2007-08-02 14:47:56 +0000
@@ -13,7 +13,7 @@
>>> from email import message_from_string
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> store = config.message_store
+ >>> store = config.db.message_store
If you try to add a message to the store which is missing either the
Message-ID header or the Date header, you will get a ValueError.
=== modified file 'Mailman/docs/mlist-addresses.txt'
--- a/Mailman/docs/mlist-addresses.txt 2007-06-22 21:15:03 +0000
+++ b/Mailman/docs/mlist-addresses.txt 2007-08-02 14:47:56 +0000
@@ -7,7 +7,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.interfaces import IMailingListAddresses
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> flush()
>>> IMailingListAddresses.providedBy(mlist)
True
=== modified file 'Mailman/docs/news-runner.txt'
--- a/Mailman/docs/news-runner.txt 2007-08-01 21:05:06 +0000
+++ b/Mailman/docs/news-runner.txt 2007-08-02 14:47:56 +0000
@@ -11,7 +11,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
>>> from Mailman.Queue.NewsRunner import prepare_message
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.linked_newsgroup = 'comp.lang.python'
>>> flush()
=== modified file 'Mailman/docs/nntp.txt'
--- a/Mailman/docs/nntp.txt 2007-07-06 04:08:56 +0000
+++ b/Mailman/docs/nntp.txt 2007-08-02 14:47:56 +0000
@@ -11,7 +11,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
>>> from email import message_from_string
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.preferred_language = 'en'
>>> flush()
>>> switchboard = Switchboard(config.NEWSQUEUE_DIR)
=== modified file 'Mailman/docs/outgoing.txt'
--- a/Mailman/docs/outgoing.txt 2007-07-08 11:47:03 +0000
+++ b/Mailman/docs/outgoing.txt 2007-08-02 14:47:56 +0000
@@ -15,7 +15,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
>>> from email import message_from_string
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> flush()
>>> switchboard = Switchboard(config.OUTQUEUE_DIR)
=== modified file 'Mailman/docs/pending.txt'
--- a/Mailman/docs/pending.txt 2007-08-01 21:05:06 +0000
+++ b/Mailman/docs/pending.txt 2007-08-02 14:47:56 +0000
@@ -15,7 +15,7 @@
In order to pend an event, you first need a pending database, which is
available by adapting the list manager.
- >>> pendingdb = IPending(config.db)
+ >>> pendingdb = config.db.pendings
>>> verifyObject(IPending, pendingdb)
True
=== modified file 'Mailman/docs/registration.txt'
--- a/Mailman/docs/registration.txt 2007-08-01 20:11:08 +0000
+++ b/Mailman/docs/registration.txt 2007-08-02 14:47:56 +0000
@@ -112,7 +112,7 @@
There should be no records in the user manager for this address yet.
- >>> usermgr = config.user_manager
+ >>> usermgr = config.db.user_manager
>>> print usermgr.get_user('[EMAIL PROTECTED]')
None
>>> print usermgr.get_address('[EMAIL PROTECTED]')
@@ -120,8 +120,7 @@
But this address is waiting for confirmation.
- >>> from Mailman.interfaces import IPending
- >>> pendingdb = IPending(config.db)
+ >>> pendingdb = config.db.pendings
>>> sorted(pendingdb.confirm(token, expunge=False).items())
[('address', '[EMAIL PROTECTED]'),
('real_name', 'Anne Person'),
@@ -358,8 +357,7 @@
that doesn't match a registration even, you will get None. However, the
pending even matched with that token will still be removed.
- >>> from Mailman.interfaces import IPendable, IPending
- >>> pendingdb = IPending(config.db)
+ >>> from Mailman.interfaces import IPendable
>>> class SimplePendable(dict):
... implements(IPendable)
>>> pendable = SimplePendable(type='foo', bar='baz')
=== modified file 'Mailman/docs/reply-to.txt'
--- a/Mailman/docs/reply-to.txt 2007-06-22 21:15:03 +0000
+++ b/Mailman/docs/reply-to.txt 2007-08-02 14:47:56 +0000
@@ -12,7 +12,7 @@
>>> from Mailman.Handlers.CookHeaders import process
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.subject_prefix = u''
>>> flush()
=== modified file 'Mailman/docs/replybot.txt'
--- a/Mailman/docs/replybot.txt 2007-06-28 05:11:50 +0000
+++ b/Mailman/docs/replybot.txt 2007-08-02 14:47:56 +0000
@@ -11,7 +11,7 @@
>>> from Mailman.Message import Message
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.real_name = 'XTest'
>>> flush()
=== modified file 'Mailman/docs/runner.txt'
--- a/Mailman/docs/runner.txt 2007-06-28 05:11:50 +0000
+++ b/Mailman/docs/runner.txt 2007-08-02 14:47:56 +0000
@@ -21,7 +21,7 @@
>>> from Mailman.Queue.Switchboard import Switchboard
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.preferred_language = 'en'
>>> flush()
=== modified file 'Mailman/docs/scrubber.txt'
--- a/Mailman/docs/scrubber.txt 2007-07-12 04:12:45 +0000
+++ b/Mailman/docs/scrubber.txt 2007-08-02 14:47:56 +0000
@@ -11,7 +11,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
>>> from email import message_from_string
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.preferred_language = 'en'
>>> flush()
=== modified file 'Mailman/docs/subject-munging.txt'
--- a/Mailman/docs/subject-munging.txt 2007-06-22 21:15:03 +0000
+++ b/Mailman/docs/subject-munging.txt 2007-08-02 14:47:56 +0000
@@ -12,7 +12,7 @@
>>> from Mailman.Handlers.CookHeaders import process
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
>>> mlist.subject_prefix = u''
>>> flush()
=== modified file 'Mailman/docs/tagger.txt'
--- a/Mailman/docs/tagger.txt 2007-07-04 04:16:48 +0000
+++ b/Mailman/docs/tagger.txt 2007-08-02 14:47:56 +0000
@@ -14,7 +14,7 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
>>> from email import message_from_string
- >>> mlist = config.list_manager.create('[EMAIL PROTECTED]')
+ >>> mlist = config.db.list_manager.create('[EMAIL PROTECTED]')
Topics must be enabled for Mailman to do any topic matching, even if topics
are defined.
=== modified file 'Mailman/docs/usermanager.txt'
--- a/Mailman/docs/usermanager.txt 2007-06-22 21:15:03 +0000
+++ b/Mailman/docs/usermanager.txt 2007-08-02 14:47:56 +0000
@@ -9,8 +9,9 @@
>>> from Mailman.configuration import config
>>> from Mailman.database import flush
>>> from Mailman.interfaces import IUserManager
- >>> mgr = config.user_manager
- >>> IUserManager.providedBy(mgr)
+ >>> from zope.interface.verify import verifyObject
+ >>> usermgr = config.db.user_manager
+ >>> verifyObject(IUserManager, usermgr)
True
@@ -23,9 +24,9 @@
have a password.
>>> from Mailman.interfaces import IUser
- >>> user = mgr.create_user()
+ >>> user = usermgr.create_user()
>>> flush()
- >>> IUser.providedBy(user)
+ >>> verifyObject(IUser, user)
True
>>> sorted(address.address for address in user.addresses)
[]
@@ -43,56 +44,56 @@
>>> user.real_name = 'Anne Person'
>>> flush()
- >>> sorted(user.real_name for user in mgr.users)
+ >>> sorted(user.real_name for user in usermgr.users)
['Anne Person']
A user can be assigned a password.
>>> user.password = 'secret'
>>> flush()
- >>> sorted(user.password for user in mgr.users)
+ >>> sorted(user.password for user in usermgr.users)
['secret']
You can also create a user with an address to start out with.
- >>> user_2 = mgr.create_user('[EMAIL PROTECTED]')
+ >>> user_2 = usermgr.create_user('[EMAIL PROTECTED]')
>>> flush()
- >>> IUser.providedBy(user_2)
+ >>> verifyObject(IUser, user_2)
True
>>> sorted(address.address for address in user_2.addresses)
['[EMAIL PROTECTED]']
- >>> sorted(user.real_name for user in mgr.users)
+ >>> sorted(user.real_name for user in usermgr.users)
['', 'Anne Person']
As above, you can assign a real name to such users.
>>> user_2.real_name = 'Ben Person'
>>> flush()
- >>> sorted(user.real_name for user in mgr.users)
+ >>> sorted(user.real_name for user in usermgr.users)
['Anne Person', 'Ben Person']
You can also create a user with just a real name.
- >>> user_3 = mgr.create_user(real_name='Claire Person')
+ >>> user_3 = usermgr.create_user(real_name='Claire Person')
>>> flush()
- >>> IUser.providedBy(user_3)
+ >>> verifyObject(IUser, user_3)
True
>>> sorted(address.address for address in user.addresses)
[]
- >>> sorted(user.real_name for user in mgr.users)
+ >>> sorted(user.real_name for user in usermgr.users)
['Anne Person', 'Ben Person', 'Claire Person']
Finally, you can create a user with both an address and a real name.
- >>> user_4 = mgr.create_user('[EMAIL PROTECTED]', 'Dan Person')
+ >>> user_4 = usermgr.create_user('[EMAIL PROTECTED]', 'Dan Person')
>>> flush()
- >>> IUser.providedBy(user_3)
+ >>> verifyObject(IUser, user_3)
True
>>> sorted(address.address for address in user_4.addresses)
['[EMAIL PROTECTED]']
>>> sorted(address.real_name for address in user_4.addresses)
['Dan Person']
- >>> sorted(user.real_name for user in mgr.users)
+ >>> sorted(user.real_name for user in usermgr.users)
['Anne Person', 'Ben Person', 'Claire Person', 'Dan Person']
@@ -102,9 +103,9 @@
You delete users by going through the user manager. The deleted user is no
longer available through the user manager iterator.
- >>> mgr.delete_user(user)
+ >>> usermgr.delete_user(user)
>>> flush()
- >>> sorted(user.real_name for user in mgr.users)
+ >>> sorted(user.real_name for user in usermgr.users)
['Ben Person', 'Claire Person', 'Dan Person']
@@ -117,7 +118,7 @@
object.
>>> address = list(user_4.addresses)[0]
- >>> found_user = mgr.get_user(address.address)
+ >>> found_user = usermgr.get_user(address.address)
>>> found_user
<User "Dan Person" at ...>
>>> found_user is user_4
@@ -126,9 +127,9 @@
If the address is not in the user database or does not have a user associated
with it, you will get None back.
- >>> print mgr.get_user('[EMAIL PROTECTED]')
+ >>> print usermgr.get_user('[EMAIL PROTECTED]')
None
>>> user_4.unlink(address)
>>> flush()
- >>> print mgr.get_user(address.address)
+ >>> print usermgr.get_user(address.address)
None
=== modified file 'Mailman/docs/users.txt'
--- a/Mailman/docs/users.txt 2007-07-01 15:51:09 +0000
+++ b/Mailman/docs/users.txt 2007-08-02 14:47:56 +0000
@@ -9,7 +9,7 @@
>>> from Mailman.database import flush
>>> from Mailman.configuration import config
- >>> mgr = config.user_manager
+ >>> usermgr = config.db.user_manager
User data
@@ -17,13 +17,13 @@
Users may have a real name and a password.
- >>> user_1 = mgr.create_user()
+ >>> user_1 = usermgr.create_user()
>>> user_1.password = 'my password'
>>> user_1.real_name = 'Zoe Person'
>>> flush()
- >>> sorted(user.real_name for user in mgr.users)
+ >>> sorted(user.real_name for user in usermgr.users)
['Zoe Person']
- >>> sorted(user.password for user in mgr.users)
+ >>> sorted(user.password for user in usermgr.users)
['my password']
The password and real name can be changed at any time.
@@ -31,9 +31,9 @@
>>> user_1.real_name = 'Zoe X. Person'
>>> user_1.password = 'another password'
>>> flush()
- >>> sorted(user.real_name for user in mgr.users)
+ >>> sorted(user.real_name for user in usermgr.users)
['Zoe X. Person']
- >>> sorted(user.password for user in mgr.users)
+ >>> sorted(user.password for user in usermgr.users)
['another password']
@@ -59,7 +59,7 @@
You can also create the address separately and then link it to the user.
- >>> address_1 = mgr.create_address('[EMAIL PROTECTED]')
+ >>> address_1 = usermgr.create_address('[EMAIL PROTECTED]')
>>> user_1.link(address_1)
>>> flush()
>>> sorted(address.address for address in user_1.addresses)
@@ -69,7 +69,7 @@
But don't try to link an address to more than one user.
- >>> another_user = mgr.create_user()
+ >>> another_user = usermgr.create_user()
>>> another_user.link(address_1)
Traceback (most recent call last):
...
@@ -85,13 +85,13 @@
Given a text email address, the user manager can find the user that controls
that address.
- >>> mgr.get_user('[EMAIL PROTECTED]') is user_1
- True
- >>> mgr.get_user('[EMAIL PROTECTED]') is user_1
- True
- >>> mgr.get_user('[EMAIL PROTECTED]') is user_1
- True
- >>> print mgr.get_user('[EMAIL PROTECTED]')
+ >>> usermgr.get_user('[EMAIL PROTECTED]') is user_1
+ True
+ >>> usermgr.get_user('[EMAIL PROTECTED]') is user_1
+ True
+ >>> usermgr.get_user('[EMAIL PROTECTED]') is user_1
+ True
+ >>> print usermgr.get_user('[EMAIL PROTECTED]')
None
Addresses can also be unlinked from a user.
@@ -99,7 +99,7 @@
>>> user_1.unlink(address_1)
>>> user_1.controls('[EMAIL PROTECTED]')
False
- >>> print mgr.get_user('[EMAIL PROTECTED]')
+ >>> print usermgr.get_user('[EMAIL PROTECTED]')
None
But don't try to unlink the address from a user it's not linked to.
=== modified file 'Mailman/initialize.py'
--- a/Mailman/initialize.py 2007-08-01 20:11:08 +0000
+++ b/Mailman/initialize.py 2007-08-02 14:47:56 +0000
@@ -34,10 +34,7 @@
import Mailman.ext
import Mailman.loginit
-from Mailman.interfaces import (
- IDatabase, IListManager, IMessageStore, IUserManager)
-
-DOT = '.'
+from Mailman.interfaces import IDatabase
@@ -94,12 +91,6 @@
verifyObject(IDatabase, db)
db.initialize()
Mailman.configuration.config.db = db
- verifyObject(IListManager, db.list_manager)
- Mailman.configuration.config.list_manager = db.list_manager
- verifyObject(IUserManager, db.user_manager)
- Mailman.configuration.config.user_manager = db.user_manager
- verifyObject(IMessageStore, db.message_store)
- Mailman.configuration.config.message_store = db.message_store
def initialize(config=None, propagate_logs=False):
=== modified file 'Mailman/interfaces/database.py'
--- a/Mailman/interfaces/database.py 2007-08-01 20:11:08 +0000
+++ b/Mailman/interfaces/database.py 2007-08-02 14:47:56 +0000
@@ -49,3 +49,6 @@
message_store = Attribute(
"""The IMessageStore instance provided by the database layer.""")
+
+ pendings = Attribute(
+ """The IPending instance provided by the database layer.""")
=== modified file 'Mailman/tests/test_documentation.py'
--- a/Mailman/tests/test_documentation.py 2007-07-11 02:39:57 +0000
+++ b/Mailman/tests/test_documentation.py 2007-08-02 14:47:56 +0000
@@ -31,24 +31,26 @@
def cleaning_teardown(testobj):
+ usermgr = config.db.user_manager
+ listmgr = config.db.list_manager
# Remove all users, addresses and members, then delete all mailing lists.
- for user in config.user_manager.users:
- config.user_manager.delete_user(user)
- for address in config.user_manager.addresses:
- config.user_manager.delete_address(address)
- for mlist in config.list_manager.mailing_lists:
+ for user in usermgr.users:
+ usermgr.delete_user(user)
+ for address in usermgr.addresses:
+ usermgr.delete_address(address)
+ for mlist in listmgr.mailing_lists:
for member in mlist.members.members:
member.unsubscribe()
for admin in mlist.administrators.members:
admin.unsubscribe()
- config.list_manager.delete(mlist)
+ listmgr.delete(mlist)
flush()
- assert not list(config.list_manager.mailing_lists), (
+ assert not list(listmgr.mailing_lists), (
'There should be no mailing lists left: %s' %
- COMMASPACE.join(sorted(config.list_manager.names)))
- assert not list(config.user_manager.users), (
+ COMMASPACE.join(sorted(listmgr.names)))
+ assert not list(usermgr.users), (
'There should be no users left!')
- assert not list(config.user_manager.addresses), (
+ assert not list(usermgr.addresses), (
'There should be no addresses left!')
# Remove all queue files.
for dirpath, dirnames, filenames in os.walk(config.QUEUE_DIR):
--
(no title)
https://code.launchpad.net/~mailman-coders/mailman/3.0
You are receiving this branch notification because you are subscribed to it.
To unsubscribe from this branch go to
https://code.launchpad.net/~mailman-coders/mailman/3.0/+subscription/mailman-checkins.
_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe:
http://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org