diff options
| author | Barry Warsaw | 2007-06-22 17:15:03 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2007-06-22 17:15:03 -0400 |
| commit | d629fe4305a062a62eb77d12d8847b7e405ff5e6 (patch) | |
| tree | a7bdda181b945ba86afeb89a2439f1836453bdd1 | |
| parent | fba4983f88e0305a32e3135d129621890bf9adde (diff) | |
| download | mailman-d629fe4305a062a62eb77d12d8847b7e405ff5e6.tar.gz mailman-d629fe4305a062a62eb77d12d8847b7e405ff5e6.tar.zst mailman-d629fe4305a062a62eb77d12d8847b7e405ff5e6.zip | |
30 files changed, 64 insertions, 265 deletions
diff --git a/Mailman/docs/ack-headers.txt b/Mailman/docs/ack-headers.txt index b6264b465..1e335ad20 100644 --- a/Mailman/docs/ack-headers.txt +++ b/Mailman/docs/ack-headers.txt @@ -53,13 +53,3 @@ Any existing X-Ack header in the original message is removed. <BLANKLINE> A message of great import. <BLANKLINE> - - -Clean up --------- - - >>> for mlist in config.list_manager.mailing_lists: - ... config.list_manager.delete(mlist) - >>> flush() - >>> list(config.list_manager.mailing_lists) - [] diff --git a/Mailman/docs/acknowledge.txt b/Mailman/docs/acknowledge.txt index 6f47fd64d..6c7e3c28f 100644 --- a/Mailman/docs/acknowledge.txt +++ b/Mailman/docs/acknowledge.txt @@ -174,13 +174,3 @@ If there is no subject, then the receipt will use a generic message. List info page: http://lists.example.com/listinfo/_xtest@example.com Your preferences: http://example.com/aperson@example.com <BLANKLINE> - - -Clean up --------- - - >>> for mlist in config.list_manager.mailing_lists: - ... config.list_manager.delete(mlist) - >>> flush() - >>> list(config.list_manager.mailing_lists) - [] diff --git a/Mailman/docs/addresses.txt b/Mailman/docs/addresses.txt index c6a2a9873..774a90855 100644 --- a/Mailman/docs/addresses.txt +++ b/Mailman/docs/addresses.txt @@ -174,21 +174,3 @@ Now that Elly is both an owner and a member of the mailing list. _xtext@example.com as MemberRole.member>] >>> sorted(mlist.digest_members.members) [] - - -Clean up --------- - - >>> for mlist in config.list_manager.mailing_lists: - ... config.list_manager.delete(mlist) - >>> for user in mgr.users: - ... mgr.delete_user(user) - >>> for address in mgr.addresses: - ... mgr.delete_address(address) - >>> flush() - >>> sorted(config.list_manager.names) - [] - >>> sorted(mgr.users) - [] - >>> sorted(mgr.addresses) - [] diff --git a/Mailman/docs/after-delivery.txt b/Mailman/docs/after-delivery.txt index ac2472745..334b2b506 100644 --- a/Mailman/docs/after-delivery.txt +++ b/Mailman/docs/after-delivery.txt @@ -31,13 +31,3 @@ attributes. True >>> mlist.post_id 11 - - -Clean up --------- - - >>> for mlist in config.list_manager.mailing_lists: - ... config.list_manager.delete(mlist) - >>> flush() - >>> list(config.list_manager.mailing_lists) - [] diff --git a/Mailman/docs/avoid-duplicates.txt b/Mailman/docs/avoid-duplicates.txt index 6a58382fd..d28f77dba 100644 --- a/Mailman/docs/avoid-duplicates.txt +++ b/Mailman/docs/avoid-duplicates.txt @@ -171,13 +171,3 @@ Other headers checked for recipients include the To... <BLANKLINE> Something of great import. <BLANKLINE> - - -Clean up --------- - - >>> for mlist in config.list_manager.mailing_lists: - ... config.list_manager.delete(mlist) - >>> flush() - >>> list(config.list_manager.mailing_lists) - [] diff --git a/Mailman/docs/calc-recips.txt b/Mailman/docs/calc-recips.txt index 9646778d6..89742d9f7 100644 --- a/Mailman/docs/calc-recips.txt +++ b/Mailman/docs/calc-recips.txt @@ -105,26 +105,3 @@ XXX Test various urgent deliveries: * test_urgent_moderator() * test_urgent_admin() * test_urgent_reject() - - -Clean up --------- - - >>> for member in mlist.members.members: - ... member.unsubscribe() - >>> flush() - >>> list(mlist.members.members) - [] - >>> 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: - ... config.list_manager.delete(mlist) - >>> flush() - >>> list(config.user_manager.users) - [] - >>> list(config.user_manager.addresses) - [] - >>> list(config.list_manager.mailing_lists) - [] diff --git a/Mailman/docs/cleanse.txt b/Mailman/docs/cleanse.txt index 85b636737..99c8ca71f 100644 --- a/Mailman/docs/cleanse.txt +++ b/Mailman/docs/cleanse.txt @@ -98,13 +98,3 @@ Hotmail apparently sets X-Originating-Email. <BLANKLINE> How are you doing? <BLANKLINE> - - -Clean up --------- - - >>> for mlist in config.list_manager.mailing_lists: - ... config.list_manager.delete(mlist) - >>> flush() - >>> list(config.list_manager.mailing_lists) - [] diff --git a/Mailman/docs/cook-headers.txt b/Mailman/docs/cook-headers.txt index cb1b07de0..fd7a458c7 100644 --- a/Mailman/docs/cook-headers.txt +++ b/Mailman/docs/cook-headers.txt @@ -292,13 +292,3 @@ List-Archive header either. List-Unsubscribe: <http://lists.example.com/listinfo/_xtest@example.com>, <mailto:_xtest-leave@example.com> ---end--- - - -Clean up --------- - - >>> for mlist in config.list_manager.mailing_lists: - ... config.list_manager.delete(mlist) - >>> flush() - >>> list(config.list_manager.mailing_lists) - [] diff --git a/Mailman/docs/membership.txt b/Mailman/docs/membership.txt index 9b6465d4a..1182030ed 100644 --- a/Mailman/docs/membership.txt +++ b/Mailman/docs/membership.txt @@ -211,30 +211,3 @@ is returned. None >>> print mlist.members.get_member('zperson@example.com') None - - -Clean up --------- - - >>> for member in mlist.members.members: - ... member.unsubscribe() - >>> for admin in mlist.administrators.members: - ... admin.unsubscribe() - >>> flush() - >>> list(mlist.members.members) - [] - >>> list(mlist.administrators.members) - [] - >>> 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: - ... config.list_manager.delete(mlist) - >>> flush() - >>> list(config.user_manager.users) - [] - >>> list(config.user_manager.addresses) - [] - >>> list(config.list_manager.mailing_lists) - [] diff --git a/Mailman/docs/mlist-addresses.txt b/Mailman/docs/mlist-addresses.txt index 257cf95c7..be9c76787 100644 --- a/Mailman/docs/mlist-addresses.txt +++ b/Mailman/docs/mlist-addresses.txt @@ -6,7 +6,9 @@ These are defined in the IMailingListAddresses interface. >>> from Mailman.configuration import config >>> from Mailman.interfaces import IMailingListAddresses + >>> from Mailman.database import flush >>> mlist = config.list_manager.create('_xtest@example.com') + >>> flush() >>> IMailingListAddresses.providedBy(mlist) True @@ -76,10 +78,3 @@ dependent on the VERP_CONFIRM_FORMAT configuration variable. >>> mlist.confirm_address('cookie') '_xtest-confirm---cookie@example.com' >>> config.VERP_CONFIRM_FORMAT = old_format - - -Clean up --------- - - >>> for mlist in config.list_manager.mailing_lists: - ... config.list_manager.delete(mlist) diff --git a/Mailman/docs/reply-to.txt b/Mailman/docs/reply-to.txt index 43f2fcc06..c6b06a390 100644 --- a/Mailman/docs/reply-to.txt +++ b/Mailman/docs/reply-to.txt @@ -136,13 +136,3 @@ And as before, it's possible to either strip any existing Reply-To header... 1 >>> msg['reply-to'] 'my-list@example.com, bperson@example.com' - - -Clean up --------- - - >>> for mlist in config.list_manager.mailing_lists: - ... config.list_manager.delete(mlist) - >>> flush() - >>> list(config.list_manager.mailing_lists) - [] diff --git a/Mailman/docs/replybot.txt b/Mailman/docs/replybot.txt index 5315eba70..b30f85d4f 100644 --- a/Mailman/docs/replybot.txt +++ b/Mailman/docs/replybot.txt @@ -219,12 +219,3 @@ be sent. This is so as not to bombard the sender with responses. The grace period is measured in days. XXX Add grace period tests. - - -Clean up --------- - - >>> config.list_manager.delete(mlist) - >>> flush() - >>> [name for name in config.list_manager.names] - [] diff --git a/Mailman/docs/subject-munging.txt b/Mailman/docs/subject-munging.txt index 921efc889..e74da47d6 100644 --- a/Mailman/docs/subject-munging.txt +++ b/Mailman/docs/subject-munging.txt @@ -250,13 +250,3 @@ And again, with an RFC 2047 encoded header. # to get Tokio to look at this. # >>> print msg['subject'] # [XTest] =?iso-2022-jp?b?IBskQiVhITwlayVeJXMbKEI=?= - - -Clean up --------- - - >>> for mlist in config.list_manager.mailing_lists: - ... config.list_manager.delete(mlist) - >>> flush() - >>> list(config.list_manager.mailing_lists) - [] diff --git a/Mailman/docs/usermanager.txt b/Mailman/docs/usermanager.txt index 1f863b606..4fd12bf59 100644 --- a/Mailman/docs/usermanager.txt +++ b/Mailman/docs/usermanager.txt @@ -132,13 +132,3 @@ with it, you will get None back. >>> flush() >>> print mgr.get_user(address.address) None - - -Clean up --------- - - >>> for user in mgr.users: - ... mgr.delete_user(user) - >>> flush() - >>> list(mgr.users) - [] diff --git a/Mailman/docs/users.txt b/Mailman/docs/users.txt index 2b60ed0bc..3dc6d11f2 100644 --- a/Mailman/docs/users.txt +++ b/Mailman/docs/users.txt @@ -152,13 +152,3 @@ Some of these preferences are booleans and they can be set to True or False. receive_list_copy : False receive_own_postings : False delivery_mode : DeliveryMode.regular - - -Clean up --------- - - >>> for user in mgr.users: - ... mgr.delete_user(user) - >>> flush() - >>> sorted(mgr.users) - [] diff --git a/Mailman/testing/base.py b/Mailman/testing/base.py index 562443b1e..c3f64554a 100644 --- a/Mailman/testing/base.py +++ b/Mailman/testing/base.py @@ -24,6 +24,7 @@ import pwd import sys import stat import shutil +import doctest import difflib import tempfile import unittest @@ -35,9 +36,11 @@ from Mailman import MailList from Mailman import Utils from Mailman.bin import rmlist from Mailman.configuration import config +from Mailman.database import flush from Mailman.database.dbcontext import dbcontext NL = '\n' +COMMASPACE = ', ' @@ -79,3 +82,34 @@ class TestBase(unittest.TestCase): path = os.path.join(config.LOCK_DIR, filename) print >> sys.stderr, '@@@@@ removing:', path os.unlink(path) + + + +def cleaning_teardown(testobj): + 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 member in mlist.members.members: + member.unsubscribe() + for admin in mlist.administrators.members: + admin.unsubscribe() + config.list_manager.delete(mlist) + flush() + assert not list(config.list_manager.mailing_lists), ( + 'There should be no mailing lists left: %s' % + COMMASPACE.join(sorted(config.list_manager.names))) + assert not list(config.user_manager.users), ( + 'There should be no users left!') + assert not list(config.user_manager.addresses), ( + 'There should be no addresses left!') + + +def make_docfile_suite(path): + return doctest.DocFileSuite( + path, + optionflags=(doctest.ELLIPSIS + | doctest.NORMALIZE_WHITESPACE + | doctest.REPORT_NDIFF), + tearDown=cleaning_teardown) diff --git a/Mailman/testing/test_acknowledge.py b/Mailman/testing/test_acknowledge.py index a40d0c9e4..605c6edda 100644 --- a/Mailman/testing/test_acknowledge.py +++ b/Mailman/testing/test_acknowledge.py @@ -17,16 +17,11 @@ """Doctest harness for testing message acknowledgment.""" -import doctest import unittest - -options = (doctest.ELLIPSIS - | doctest.NORMALIZE_WHITESPACE - | doctest.REPORT_NDIFF) +from Mailman.testing.base import make_docfile_suite def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/acknowledge.txt', - optionflags=options)) + suite.addTest(make_docfile_suite('../docs/acknowledge.txt')) return suite diff --git a/Mailman/testing/test_address.py b/Mailman/testing/test_address.py index a04b3e795..d66292c55 100644 --- a/Mailman/testing/test_address.py +++ b/Mailman/testing/test_address.py @@ -17,14 +17,11 @@ """Doctest harness for testing IAddress interface.""" -import doctest import unittest - -options = doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE +from Mailman.testing.base import make_docfile_suite def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/addresses.txt', - optionflags=options)) + suite.addTest(make_docfile_suite('../docs/addresses.txt')) return suite diff --git a/Mailman/testing/test_after_delivery.py b/Mailman/testing/test_after_delivery.py index ea4801b39..a7d0f01f4 100644 --- a/Mailman/testing/test_after_delivery.py +++ b/Mailman/testing/test_after_delivery.py @@ -17,16 +17,12 @@ """Doctest harness for testing bookkeeping done after message delivery.""" -import doctest import unittest -options = (doctest.ELLIPSIS - | doctest.NORMALIZE_WHITESPACE - | doctest.REPORT_NDIFF) +from Mailman.testing.base import make_docfile_suite def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/after-delivery.txt', - optionflags=options)) + suite.addTest(make_docfile_suite('../docs/after-delivery.txt')) return suite diff --git a/Mailman/testing/test_avoid_duplicates.py b/Mailman/testing/test_avoid_duplicates.py index 96599f1ed..b5de721e6 100644 --- a/Mailman/testing/test_avoid_duplicates.py +++ b/Mailman/testing/test_avoid_duplicates.py @@ -17,17 +17,11 @@ """Doctest harness for the AvoidDuplicates handler.""" -import os -import doctest import unittest - -options = (doctest.ELLIPSIS - | doctest.NORMALIZE_WHITESPACE - | doctest.REPORT_NDIFF) +from Mailman.testing.base import make_docfile_suite def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/avoid-duplicates.txt', - optionflags=options)) + suite.addTest(make_docfile_suite('../docs/avoid-duplicates.txt')) return suite diff --git a/Mailman/testing/test_calc_recips.py b/Mailman/testing/test_calc_recips.py index 7e876d428..da3929b65 100644 --- a/Mailman/testing/test_calc_recips.py +++ b/Mailman/testing/test_calc_recips.py @@ -17,16 +17,11 @@ """Doctest harness for testing the recipient calculation handler.""" -import doctest import unittest - -options = (doctest.ELLIPSIS - | doctest.NORMALIZE_WHITESPACE - | doctest.REPORT_NDIFF) +from Mailman.testing.base import make_docfile_suite def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/calc-recips.txt', - optionflags=options)) + suite.addTest(make_docfile_suite('../docs/calc-recips.txt')) return suite diff --git a/Mailman/testing/test_cleanse.py b/Mailman/testing/test_cleanse.py index 97ad9c46c..e058c7bfa 100644 --- a/Mailman/testing/test_cleanse.py +++ b/Mailman/testing/test_cleanse.py @@ -17,16 +17,11 @@ """Doctest harness for the Cleanse handler.""" -import doctest import unittest - -options = (doctest.ELLIPSIS - | doctest.NORMALIZE_WHITESPACE - | doctest.REPORT_NDIFF) +from Mailman.testing.base import make_docfile_suite def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/cleanse.txt', - optionflags=options)) + suite.addTest(make_docfile_suite('../docs/cleanse.txt')) return suite diff --git a/Mailman/testing/test_cook_headers.py b/Mailman/testing/test_cook_headers.py index ec8997858..dd141aab9 100644 --- a/Mailman/testing/test_cook_headers.py +++ b/Mailman/testing/test_cook_headers.py @@ -18,12 +18,9 @@ """Doctest harness for the CookHeaders handler.""" import os -import doctest import unittest -options = (doctest.ELLIPSIS - | doctest.NORMALIZE_WHITESPACE - | doctest.REPORT_NDIFF) +from Mailman.testing.base import make_docfile_suite def test_suite(): @@ -31,5 +28,5 @@ def test_suite(): for filename in ('ack-headers', 'cook-headers', 'subject-munging', 'reply-to'): path = os.path.join('..', 'docs', filename + '.txt') - suite.addTest(doctest.DocFileSuite(path, optionflags=options)) + suite.addTest(make_docfile_suite(path)) return suite diff --git a/Mailman/testing/test_decorate.py b/Mailman/testing/test_decorate.py index 23af0598c..1bbe84250 100644 --- a/Mailman/testing/test_decorate.py +++ b/Mailman/testing/test_decorate.py @@ -17,16 +17,11 @@ """Doctest harness for testing message decoration.""" -import doctest import unittest - -options = (doctest.ELLIPSIS - | doctest.NORMALIZE_WHITESPACE - | doctest.REPORT_NDIFF) +from Mailman.testing.base import make_docfile_suite def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/decorate.txt', - optionflags=options)) + suite.addTest(make_docfile_suite('../docs/decorate.txt')) return suite diff --git a/Mailman/testing/test_listmanager.py b/Mailman/testing/test_listmanager.py index 165018fa6..e6e9d6a3b 100644 --- a/Mailman/testing/test_listmanager.py +++ b/Mailman/testing/test_listmanager.py @@ -17,12 +17,11 @@ """Doctest harness for testing mailing list creation and deletion.""" -import doctest import unittest +from Mailman.testing.base import make_docfile_suite def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/listmanager.txt', - optionflags=doctest.ELLIPSIS)) + suite.addTest(make_docfile_suite('../docs/listmanager.txt')) return suite diff --git a/Mailman/testing/test_membership.py b/Mailman/testing/test_membership.py index 8a25287ac..810a2fed9 100644 --- a/Mailman/testing/test_membership.py +++ b/Mailman/testing/test_membership.py @@ -19,7 +19,6 @@ import os import time -import doctest import unittest from Mailman import MailList @@ -29,9 +28,7 @@ from Mailman import passwords from Mailman.Errors import NotAMemberError from Mailman.UserDesc import UserDesc from Mailman.configuration import config -from Mailman.testing.base import TestBase - -OPTIONFLAGS = doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE +from Mailman.testing.base import TestBase, make_docfile_suite @@ -390,6 +387,5 @@ class TestMembers(TestBase): def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/membership.txt', - optionflags=OPTIONFLAGS)) + suite.addTest(make_docfile_suite('../docs/membership.txt')) return suite diff --git a/Mailman/testing/test_mlist_addresses.py b/Mailman/testing/test_mlist_addresses.py index fe32c12b2..1998f33ee 100644 --- a/Mailman/testing/test_mlist_addresses.py +++ b/Mailman/testing/test_mlist_addresses.py @@ -17,12 +17,11 @@ """Doctest harness for the IMailingListAddresses interface.""" -import doctest import unittest +from Mailman.testing.base import make_docfile_suite def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/mlist-addresses.txt', - optionflags=doctest.ELLIPSIS)) + suite.addTest(make_docfile_suite('../docs/mlist-addresses.txt')) return suite diff --git a/Mailman/testing/test_replybot.py b/Mailman/testing/test_replybot.py index 6b371c9d0..9f5d454a6 100644 --- a/Mailman/testing/test_replybot.py +++ b/Mailman/testing/test_replybot.py @@ -17,16 +17,11 @@ """Doctest harness for testing the replybot handler.""" -import doctest import unittest - -options = (doctest.ELLIPSIS - | doctest.NORMALIZE_WHITESPACE - | doctest.REPORT_NDIFF) +from Mailman.testing.base import make_docfile_suite def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/replybot.txt', - optionflags=options)) + suite.addTest(make_docfile_suite('../docs/replybot.txt')) return suite diff --git a/Mailman/testing/test_user.py b/Mailman/testing/test_user.py index 59b686795..b66efac62 100644 --- a/Mailman/testing/test_user.py +++ b/Mailman/testing/test_user.py @@ -17,16 +17,11 @@ """Doctest harness for testing users.""" -import doctest import unittest - -options = (doctest.ELLIPSIS - | doctest.NORMALIZE_WHITESPACE - | doctest.REPORT_NDIFF) +from Mailman.testing.base import make_docfile_suite def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/users.txt', - optionflags=options)) + suite.addTest(make_docfile_suite('../docs/users.txt')) return suite diff --git a/Mailman/testing/test_usermanager.py b/Mailman/testing/test_usermanager.py index fa115728e..9b98a6689 100644 --- a/Mailman/testing/test_usermanager.py +++ b/Mailman/testing/test_usermanager.py @@ -17,12 +17,11 @@ """Doctest harness for testing mailing list creation and deletion.""" -import doctest import unittest +from Mailman.testing.base import make_docfile_suite def test_suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocFileSuite('../docs/usermanager.txt', - optionflags=doctest.ELLIPSIS)) + suite.addTest(make_docfile_suite('../docs/usermanager.txt')) return suite |
