summaryrefslogtreecommitdiff
path: root/mailman/pipeline/docs/avoid-duplicates.txt
diff options
context:
space:
mode:
authorBarry Warsaw2009-01-25 13:01:41 -0500
committerBarry Warsaw2009-01-25 13:01:41 -0500
commiteefd06f1b88b8ecbb23a9013cd223b72ca85c20d (patch)
tree72c947fe16fce0e07e996ee74020b26585d7e846 /mailman/pipeline/docs/avoid-duplicates.txt
parent07871212f74498abd56bef3919bf3e029eb8b930 (diff)
downloadmailman-eefd06f1b88b8ecbb23a9013cd223b72ca85c20d.tar.gz
mailman-eefd06f1b88b8ecbb23a9013cd223b72ca85c20d.tar.zst
mailman-eefd06f1b88b8ecbb23a9013cd223b72ca85c20d.zip
Push the source directory into a 'src' subdirectory so that zc.buildout works
correctly regardless of how it's used.
Diffstat (limited to 'mailman/pipeline/docs/avoid-duplicates.txt')
-rw-r--r--mailman/pipeline/docs/avoid-duplicates.txt168
1 files changed, 0 insertions, 168 deletions
diff --git a/mailman/pipeline/docs/avoid-duplicates.txt b/mailman/pipeline/docs/avoid-duplicates.txt
deleted file mode 100644
index fe91a9a71..000000000
--- a/mailman/pipeline/docs/avoid-duplicates.txt
+++ /dev/null
@@ -1,168 +0,0 @@
-Avoid duplicates
-================
-
-The AvoidDuplicates handler module implements several strategies to try to
-reduce the reception of duplicate messages. It does this by removing certain
-recipients from the list of recipients that earlier handler modules
-(e.g. CalcRecips) calculates.
-
- >>> handler = config.handlers['avoid-duplicates']
- >>> mlist = config.db.list_manager.create(u'_xtest@example.com')
-
-Create some members we're going to use.
-
- >>> from mailman.interfaces.member import MemberRole
- >>> address_a = config.db.user_manager.create_address(
- ... u'aperson@example.com')
- >>> address_b = config.db.user_manager.create_address(
- ... u'bperson@example.com')
- >>> member_a = address_a.subscribe(mlist, MemberRole.member)
- >>> member_b = address_b.subscribe(mlist, MemberRole.member)
- >>> # This is the message metadata dictionary as it would be produced by
- >>> # the CalcRecips handler.
- >>> recips = dict(recips=[u'aperson@example.com', u'bperson@example.com'])
-
-
-Short circuiting
-----------------
-
-The module short-circuits if there are no recipients.
-
- >>> msg = message_from_string("""\
- ... From: aperson@example.com
- ... Subject: A message of great import
- ...
- ... Something
- ... """)
- >>> msgdata = {}
- >>> handler.process(mlist, msg, msgdata)
- >>> msgdata
- {}
- >>> print msg.as_string()
- From: aperson@example.com
- Subject: A message of great import
- <BLANKLINE>
- Something
- <BLANKLINE>
-
-
-Suppressing the list copy
--------------------------
-
-Members can elect not to receive a list copy of any message on which they are
-explicitly named as a recipient. This is done by setting their
-receive_list_copy preference to False. However, if they aren't mentioned in
-one of the recipient headers (i.e. To, CC, Resent-To, or Resent-CC), then they
-will get a list copy.
-
- >>> member_a.preferences.receive_list_copy = False
- >>> msg = message_from_string("""\
- ... From: Claire Person <cperson@example.com>
- ...
- ... Something of great import.
- ... """)
- >>> msgdata = recips.copy()
- >>> handler.process(mlist, msg, msgdata)
- >>> sorted(msgdata['recips'])
- [u'aperson@example.com', u'bperson@example.com']
- >>> print msg.as_string()
- From: Claire Person <cperson@example.com>
- <BLANKLINE>
- Something of great import.
- <BLANKLINE>
-
-If they're mentioned on the CC line, they won't get a list copy.
-
- >>> msg = message_from_string("""\
- ... From: Claire Person <cperson@example.com>
- ... CC: aperson@example.com
- ...
- ... Something of great import.
- ... """)
- >>> msgdata = recips.copy()
- >>> handler.process(mlist, msg, msgdata)
- >>> sorted(msgdata['recips'])
- [u'bperson@example.com']
- >>> print msg.as_string()
- From: Claire Person <cperson@example.com>
- CC: aperson@example.com
- <BLANKLINE>
- Something of great import.
- <BLANKLINE>
-
-But if they're mentioned on the CC line and have receive_list_copy set to True
-(the default), then they still get a list copy.
-
- >>> msg = message_from_string("""\
- ... From: Claire Person <cperson@example.com>
- ... CC: bperson@example.com
- ...
- ... Something of great import.
- ... """)
- >>> msgdata = recips.copy()
- >>> handler.process(mlist, msg, msgdata)
- >>> sorted(msgdata['recips'])
- [u'aperson@example.com', u'bperson@example.com']
- >>> print msg.as_string()
- From: Claire Person <cperson@example.com>
- CC: bperson@example.com
- <BLANKLINE>
- Something of great import.
- <BLANKLINE>
-
-Other headers checked for recipients include the To...
-
- >>> msg = message_from_string("""\
- ... From: Claire Person <cperson@example.com>
- ... To: aperson@example.com
- ...
- ... Something of great import.
- ... """)
- >>> msgdata = recips.copy()
- >>> handler.process(mlist, msg, msgdata)
- >>> sorted(msgdata['recips'])
- [u'bperson@example.com']
- >>> print msg.as_string()
- From: Claire Person <cperson@example.com>
- To: aperson@example.com
- <BLANKLINE>
- Something of great import.
- <BLANKLINE>
-
-...Resent-To...
-
- >>> msg = message_from_string("""\
- ... From: Claire Person <cperson@example.com>
- ... Resent-To: aperson@example.com
- ...
- ... Something of great import.
- ... """)
- >>> msgdata = recips.copy()
- >>> handler.process(mlist, msg, msgdata)
- >>> sorted(msgdata['recips'])
- [u'bperson@example.com']
- >>> print msg.as_string()
- From: Claire Person <cperson@example.com>
- Resent-To: aperson@example.com
- <BLANKLINE>
- Something of great import.
- <BLANKLINE>
-
-...and Resent-CC headers.
-
- >>> msg = message_from_string("""\
- ... From: Claire Person <cperson@example.com>
- ... Resent-Cc: aperson@example.com
- ...
- ... Something of great import.
- ... """)
- >>> msgdata = recips.copy()
- >>> handler.process(mlist, msg, msgdata)
- >>> sorted(msgdata['recips'])
- [u'bperson@example.com']
- >>> print msg.as_string()
- From: Claire Person <cperson@example.com>
- Resent-Cc: aperson@example.com
- <BLANKLINE>
- Something of great import.
- <BLANKLINE>