summaryrefslogtreecommitdiff
path: root/src/mailman/model/docs
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/model/docs')
-rw-r--r--src/mailman/model/docs/addresses.txt41
-rw-r--r--src/mailman/model/docs/mailinglist.txt101
-rw-r--r--src/mailman/model/docs/membership.txt12
-rw-r--r--src/mailman/model/docs/requests.txt4
-rw-r--r--src/mailman/model/docs/users.txt8
5 files changed, 77 insertions, 89 deletions
diff --git a/src/mailman/model/docs/addresses.txt b/src/mailman/model/docs/addresses.txt
index fdcc993b5..ffbb897ab 100644
--- a/src/mailman/model/docs/addresses.txt
+++ b/src/mailman/model/docs/addresses.txt
@@ -153,47 +153,6 @@ And of course, you can also set the validation date.
2007-05-13 22:54:01
-Subscriptions
-=============
-
-Addresses get subscribed to mailing lists, not users. When the address is
-subscribed, a role is specified.
-::
-
- >>> address_5 = user_manager.create_address(
- ... 'eperson@example.com', 'Elly Person')
- >>> mlist = create_list('test@example.com')
-
- >>> from mailman.interfaces.member import MemberRole
- >>> address_5.subscribe(mlist, MemberRole.owner)
- <Member: Elly Person <eperson@example.com> on
- test@example.com as MemberRole.owner>
- >>> address_5.subscribe(mlist, MemberRole.member)
- <Member: Elly Person <eperson@example.com> on
- test@example.com as MemberRole.member>
-
-Now Elly is both an owner and a member of the mailing list.
-
- >>> def memberkey(member):
- ... return member.mailing_list, member.address.email, int(member.role)
- >>> dump_list(mlist.owners.members, key=memberkey)
- <Member: Elly Person <eperson@example.com> on
- test@example.com as MemberRole.owner>
- >>> dump_list(mlist.moderators.members, key=memberkey)
- *Empty*
- >>> dump_list(mlist.administrators.members, key=memberkey)
- <Member: Elly Person <eperson@example.com> on
- test@example.com as MemberRole.owner>
- >>> dump_list(mlist.members.members, key=memberkey)
- <Member: Elly Person <eperson@example.com> on
- test@example.com as MemberRole.member>
- >>> dump_list(mlist.regular_members.members, key=memberkey)
- <Member: Elly Person <eperson@example.com> on
- test@example.com as MemberRole.member>
- >>> dump_list(mlist.digest_members.members, key=memberkey)
- *Empty*
-
-
Case-preserved addresses
========================
diff --git a/src/mailman/model/docs/mailinglist.txt b/src/mailman/model/docs/mailinglist.txt
index 33d681762..cc95c077c 100644
--- a/src/mailman/model/docs/mailinglist.txt
+++ b/src/mailman/model/docs/mailinglist.txt
@@ -9,16 +9,16 @@ the system by its posting address, i.e. the email address you would send a
message to in order to post a message to the mailing list. This must be fully
qualified.
- >>> alpha = create_list('alpha@example.com')
- >>> print alpha.fqdn_listname
- alpha@example.com
+ >>> mlist = create_list('aardvark@example.com')
+ >>> print mlist.fqdn_listname
+ aardvark@example.com
The mailing list also has convenient attributes for accessing the list's short
name (i.e. local part) and host name.
- >>> print alpha.list_name
- alpha
- >>> print alpha.host_name
+ >>> print mlist.list_name
+ aardvark
+ >>> print mlist.host_name
example.com
@@ -29,46 +29,75 @@ Mailing list membership is represented by `rosters`. Each mailing list has
several rosters of members, representing the subscribers to the mailing list,
the owners, the moderators, and so on. The rosters are defined by a
membership role.
+
+Addresses can be explicitly subscribed to a mailing list. By default, a
+subscription puts the address in the `member` role, meaning that address will
+receive a copy of any message sent to the mailing list.
::
- >>> from mailman.interfaces.member import MemberRole
- >>> from mailman.testing.helpers import subscribe
+ >>> from mailman.interfaces.usermanager import IUserManager
+ >>> from zope.component import getUtility
+ >>> user_manager = getUtility(IUserManager)
- >>> subscribe(alpha, 'Anne')
- >>> subscribe(alpha, 'Bart')
- >>> subscribe(alpha, 'Cris')
- >>> subscribe(alpha, 'Anne', MemberRole.owner)
- >>> subscribe(alpha, 'Dave', MemberRole.owner)
- >>> subscribe(alpha, 'Elle', MemberRole.moderator)
+ >>> aperson = user_manager.create_address('aperson@example.com')
+ >>> bperson = user_manager.create_address('bperson@example.com')
+ >>> mlist.subscribe(aperson)
+ <Member: aperson@example.com on aardvark@example.com as MemberRole.member>
+ >>> mlist.subscribe(bperson)
+ <Member: bperson@example.com on aardvark@example.com as MemberRole.member>
-We can retrieve a roster directly...
+Both addresses appear on the roster of members.
- >>> for member in alpha.members.members:
- ... print member.address
- Anne Person <aperson@example.com>
- Bart Person <bperson@example.com>
- Cris Person <cperson@example.com>
+ >>> for member in mlist.members.members:
+ ... print member
+ <Member: aperson@example.com on aardvark@example.com as MemberRole.member>
+ <Member: bperson@example.com on aardvark@example.com as MemberRole.member>
-...or programmatically.
+By explicitly specifying the role of the subscription, an address can be added
+to the owner and moderator rosters.
- >>> roster = alpha.get_roster(MemberRole.member)
- >>> for member in roster.members:
- ... print member.address
- Anne Person <aperson@example.com>
- Bart Person <bperson@example.com>
- Cris Person <cperson@example.com>
+ >>> from mailman.interfaces.member import MemberRole
+ >>> mlist.subscribe(aperson, MemberRole.owner)
+ <Member: aperson@example.com on aardvark@example.com as MemberRole.owner>
+ >>> cperson = user_manager.create_address('cperson@example.com')
+ >>> mlist.subscribe(cperson, MemberRole.owner)
+ <Member: cperson@example.com on aardvark@example.com as MemberRole.owner>
+ >>> mlist.subscribe(cperson, MemberRole.moderator)
+ <Member: cperson@example.com on aardvark@example.com
+ as MemberRole.moderator>
+
+A Person is now both a member and an owner of the mailing list. C Person is
+an owner and a moderator.
+::
-This includes the roster of owners...
+ >>> for member in mlist.owners.members:
+ ... print member
+ <Member: aperson@example.com on aardvark@example.com as MemberRole.owner>
+ <Member: cperson@example.com on aardvark@example.com as MemberRole.owner>
- >>> roster = alpha.get_roster(MemberRole.owner)
+ >>> for member in mlist.moderators.members:
+ ... print member
+ <Member: cperson@example.com on aardvark@example.com
+ as MemberRole.moderator>
+
+
+All rosters can also be accessed indirectly.
+::
+
+ >>> roster = mlist.get_roster(MemberRole.member)
>>> for member in roster.members:
- ... print member.address
- Anne Person <aperson@example.com>
- Dave Person <dperson@example.com>
+ ... print member
+ <Member: aperson@example.com on aardvark@example.com as MemberRole.member>
+ <Member: bperson@example.com on aardvark@example.com as MemberRole.member>
-...and moderators.
+ >>> roster = mlist.get_roster(MemberRole.owner)
+ >>> for member in roster.members:
+ ... print member
+ <Member: aperson@example.com on aardvark@example.com as MemberRole.owner>
+ <Member: cperson@example.com on aardvark@example.com as MemberRole.owner>
- >>> roster = alpha.get_roster(MemberRole.moderator)
+ >>> roster = mlist.get_roster(MemberRole.moderator)
>>> for member in roster.members:
- ... print member.address
- Elle Person <eperson@example.com>
+ ... print member
+ <Member: cperson@example.com on aardvark@example.com
+ as MemberRole.moderator>
diff --git a/src/mailman/model/docs/membership.txt b/src/mailman/model/docs/membership.txt
index 6f5b82622..8a3f0da16 100644
--- a/src/mailman/model/docs/membership.txt
+++ b/src/mailman/model/docs/membership.txt
@@ -51,7 +51,7 @@ her.
>>> from mailman.interfaces.member import MemberRole
>>> address_1 = list(user_1.addresses)[0]
- >>> address_1.subscribe(mlist, MemberRole.owner)
+ >>> mlist.subscribe(address_1, MemberRole.owner)
<Member: Anne Person <aperson@example.com> on
test@example.com as MemberRole.owner>
>>> dump_list(member.address for member in mlist.owners.members)
@@ -73,7 +73,7 @@ Bart becomes a moderator of the list.
>>> print user_2
<User "Bart Person" (...) at ...>
>>> address_2 = list(user_2.addresses)[0]
- >>> address_2.subscribe(mlist, MemberRole.moderator)
+ >>> mlist.subscribe(address_2, MemberRole.moderator)
<Member: Bart Person <bperson@example.com>
on test@example.com as MemberRole.moderator>
>>> dump_list(member.address for member in mlist.moderators.members)
@@ -102,7 +102,7 @@ role.
>>> user_3 = user_manager.create_user(
... 'cperson@example.com', 'Cris Person')
>>> address_3 = list(user_3.addresses)[0]
- >>> member = address_3.subscribe(mlist, MemberRole.member)
+ >>> member = mlist.subscribe(address_3, MemberRole.member)
>>> member
<Member: Cris Person <cperson@example.com>
on test@example.com as MemberRole.member>
@@ -125,7 +125,7 @@ It's easy to make the list administrators members of the mailing list too.
>>> members = []
>>> for address in mlist.administrators.addresses:
- ... member = address.subscribe(mlist, MemberRole.member)
+ ... member = mlist.subscribe(address, MemberRole.member)
... members.append(member)
>>> dump_list(members, key=attrgetter('address.email'))
<Member: Anne Person <aperson@example.com> on
@@ -157,7 +157,7 @@ role.
>>> user_6 = user_manager.create_user('fperson@example.com', 'Fred Person')
>>> address_6 = list(user_6.addresses)[0]
- >>> member_6 = address_6.subscribe(mlist, MemberRole.nonmember)
+ >>> member_6 = mlist.subscribe(address_6, MemberRole.nonmember)
>>> member_6
<Member: Fred Person <fperson@example.com> on test@example.com
as MemberRole.nonmember>
@@ -233,7 +233,7 @@ Double subscriptions
It is an error to subscribe someone to a list with the same role twice.
- >>> address_1.subscribe(mlist, MemberRole.owner)
+ >>> mlist.subscribe(address_1, MemberRole.owner)
Traceback (most recent call last):
...
AlreadySubscribedError: aperson@example.com is already a MemberRole.owner
diff --git a/src/mailman/model/docs/requests.txt b/src/mailman/model/docs/requests.txt
index 2ff173422..bebb61259 100644
--- a/src/mailman/model/docs/requests.txt
+++ b/src/mailman/model/docs/requests.txt
@@ -716,12 +716,12 @@ notification.
>>> from mailman.interfaces.member import MemberRole
>>> user_1 = user_manager.create_user('gperson@example.com')
>>> address_1 = list(user_1.addresses)[0]
- >>> address_1.subscribe(mlist, MemberRole.member)
+ >>> mlist.subscribe(address_1, MemberRole.member)
<Member: gperson@example.com on alist@example.com as MemberRole.member>
>>> user_2 = user_manager.create_user('hperson@example.com')
>>> address_2 = list(user_2.addresses)[0]
- >>> address_2.subscribe(mlist, MemberRole.member)
+ >>> mlist.subscribe(address_2, MemberRole.member)
<Member: hperson@example.com on alist@example.com as MemberRole.member>
>>> id_5 = moderator.hold_unsubscription(mlist, 'gperson@example.com')
diff --git a/src/mailman/model/docs/users.txt b/src/mailman/model/docs/users.txt
index c8244c506..f15d5453b 100644
--- a/src/mailman/model/docs/users.txt
+++ b/src/mailman/model/docs/users.txt
@@ -207,14 +207,14 @@ membership role.
>>> mlist_3 = create_list('xtest_3@example.com')
>>> from mailman.interfaces.member import MemberRole
- >>> com.subscribe(mlist_1, MemberRole.member)
+ >>> mlist_1.subscribe(com, MemberRole.member)
<Member: Zoe Person <zperson@example.com> on xtest_1@example.com as
MemberRole.member>
- >>> org.subscribe(mlist_2, MemberRole.member)
+ >>> mlist_2.subscribe(org, MemberRole.member)
<Member: zperson@example.org on xtest_2@example.com as MemberRole.member>
- >>> org.subscribe(mlist_2, MemberRole.owner)
+ >>> mlist_2.subscribe(org, MemberRole.owner)
<Member: zperson@example.org on xtest_2@example.com as MemberRole.owner>
- >>> net.subscribe(mlist_3, MemberRole.moderator)
+ >>> mlist_3.subscribe(net, MemberRole.moderator)
<Member: zperson@example.net on xtest_3@example.com as
MemberRole.moderator>