diff options
31 files changed, 11 insertions, 667 deletions
diff --git a/src/mailman/app/tests/test_bounces.py b/src/mailman/app/tests/test_bounces.py index 3a39b756a..1646e02ae 100644 --- a/src/mailman/app/tests/test_bounces.py +++ b/src/mailman/app/tests/test_bounces.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -499,14 +498,3 @@ Message-ID: <first> # recipients of this message. self.assertEqual(items[0].msgdata['recipients'], set(['postmaster@example.com',])) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestMaybeForward)) - suite.addTest(unittest.makeSuite(TestProbe)) - suite.addTest(unittest.makeSuite(TestSendProbe)) - suite.addTest(unittest.makeSuite(TestSendProbeNonEnglish)) - suite.addTest(unittest.makeSuite(TestVERP)) - return suite diff --git a/src/mailman/app/tests/test_inject.py b/src/mailman/app/tests/test_inject.py index b395eb989..c03167e1a 100644 --- a/src/mailman/app/tests/test_inject.py +++ b/src/mailman/app/tests/test_inject.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -209,11 +208,3 @@ Nothing. items = get_queue_messages('in') self.assertEqual(items[0].msgdata['foo'], 'yes') self.assertEqual(items[0].msgdata['bar'], 'no') - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestInjectMessage)) - suite.addTest(unittest.makeSuite(TestInjectText)) - return suite diff --git a/src/mailman/app/tests/test_membership.py b/src/mailman/app/tests/test_membership.py index 0e8225f3a..8222dc56c 100644 --- a/src/mailman/app/tests/test_membership.py +++ b/src/mailman/app/tests/test_membership.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -197,11 +196,3 @@ class AddMemberPasswordTest(unittest.TestCase): system_preferences.preferred_language) self.assertEqual( member.user.password, '{SHA}qZk-NkcGgWq6PiVxeFDCbJzQ2J0=') - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(AddMemberTest)) - suite.addTest(unittest.makeSuite(AddMemberPasswordTest)) - return suite diff --git a/src/mailman/app/tests/test_moderation.py b/src/mailman/app/tests/test_moderation.py index c96430c64..a907b40dd 100644 --- a/src/mailman/app/tests/test_moderation.py +++ b/src/mailman/app/tests/test_moderation.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -96,10 +95,3 @@ Message-ID: <alpha> # envelope. self.assertEqual(message['x-mailfrom'], 'test-bounces@example.com') self.assertEqual(message['x-rcptto'], 'bart@example.com') - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestModeration)) - return suite diff --git a/src/mailman/app/tests/test_subscriptions.py b/src/mailman/app/tests/test_subscriptions.py index 861551a03..a906e0ec5 100644 --- a/src/mailman/app/tests/test_subscriptions.py +++ b/src/mailman/app/tests/test_subscriptions.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -67,10 +66,3 @@ class TestJoin(unittest.TestCase): self.assertEqual(exc.address, 'bogus') else: raise AssertionError('InvalidEmailAddressError expected') - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestJoin)) - return suite diff --git a/src/mailman/bin/tests/test_master.py b/src/mailman/bin/tests/test_master.py index a97817f24..af00051a2 100644 --- a/src/mailman/bin/tests/test_master.py +++ b/src/mailman/bin/tests/test_master.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -72,10 +71,3 @@ class TestMasterLock(unittest.TestCase): my_lock.unlock() self.assertEqual(state, master.WatcherState.conflict) # XXX test stale_lock and host_mismatch states. - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestMasterLock)) - return suite diff --git a/src/mailman/chains/tests/test_hold.py b/src/mailman/chains/tests/test_hold.py index b3e9815d5..292213da4 100644 --- a/src/mailman/chains/tests/test_hold.py +++ b/src/mailman/chains/tests/test_hold.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -96,10 +95,3 @@ further responses today. Please try again tomorrow. If you believe this message is in error, or if you have any questions, please contact the list owner at test-owner@example.com.""") - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestAutorespond)) - return suite diff --git a/src/mailman/commands/tests/test_control.py b/src/mailman/commands/tests/test_control.py index 105ba95d5..73b7395ff 100644 --- a/src/mailman/commands/tests/test_control.py +++ b/src/mailman/commands/tests/test_control.py @@ -23,7 +23,6 @@ __metaclass__ = type __all__ = [ 'find_master', 'make_config', - 'test_suite', ] @@ -162,10 +161,3 @@ class TestStart(unittest.TestCase): self.command.process(self.args) pid = find_master() self.assertNotEqual(pid, None) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestStart)) - return suite diff --git a/src/mailman/commands/tests/test_create.py b/src/mailman/commands/tests/test_create.py index 76a8e0e00..75218de94 100644 --- a/src/mailman/commands/tests/test_create.py +++ b/src/mailman/commands/tests/test_create.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -95,10 +94,3 @@ class TestCreate(unittest.TestCase): pass self.assertEqual(self.command.parser.message, 'Illegal owner addresses: main=True') - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestCreate)) - return suite diff --git a/src/mailman/model/tests/test_bounce.py b/src/mailman/model/tests/test_bounce.py index a232b37fd..da203e077 100644 --- a/src/mailman/model/tests/test_bounce.py +++ b/src/mailman/model/tests/test_bounce.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -96,10 +95,3 @@ Message-Id: <first> # Now there will be no unprocessed events. unprocessed = list(self._processor.unprocessed) self.assertEqual(len(unprocessed), 0) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestBounceEvents)) - return suite diff --git a/src/mailman/model/tests/test_domain.py b/src/mailman/model/tests/test_domain.py index 4ad8a5403..c7c4ba999 100644 --- a/src/mailman/model/tests/test_domain.py +++ b/src/mailman/model/tests/test_domain.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -103,11 +102,3 @@ class TestDomainLifecycleEvents(unittest.TestCase): self.assertEqual(listmanager.get('dog@example.org'), None) self.assertEqual(listmanager.get('ewe@example.com'), ewe) self.assertEqual(listmanager.get('fly@example.com'), fly) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestDomainManager)) - suite.addTest(unittest.makeSuite(TestDomainLifecycleEvents)) - return suite diff --git a/src/mailman/model/tests/test_listmanager.py b/src/mailman/model/tests/test_listmanager.py index 8ea36d9b7..5e4a38438 100644 --- a/src/mailman/model/tests/test_listmanager.py +++ b/src/mailman/model/tests/test_listmanager.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -126,11 +125,3 @@ Message-ID: <argon> self.assertEqual(request, None) saved_message = getUtility(IMessageStore).get_message_by_id('<argon>') self.assertEqual(saved_message.as_string(), msg.as_string()) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestListManager)) - suite.addTest(unittest.makeSuite(TestListLifecycleEvents)) - return suite diff --git a/src/mailman/model/tests/test_member.py b/src/mailman/model/tests/test_member.py index 7906d8983..c45bcf396 100644 --- a/src/mailman/model/tests/test_member.py +++ b/src/mailman/model/tests/test_member.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -95,10 +94,3 @@ class TestMember(unittest.TestCase): # The new address is not verified. self.assertRaises(MembershipError, setattr, member, 'address', bart_address) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestMember)) - return suite diff --git a/src/mailman/model/tests/test_uid.py b/src/mailman/model/tests/test_uid.py index c8ba4b770..bd4faf94f 100644 --- a/src/mailman/model/tests/test_uid.py +++ b/src/mailman/model/tests/test_uid.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -47,10 +46,3 @@ class TestUID(unittest.TestCase): my_uuid = uuid.uuid4() UID.record(my_uuid) self.assertRaises(ValueError, UID.record, my_uuid) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestUID)) - return suite diff --git a/src/mailman/model/tests/test_user.py b/src/mailman/model/tests/test_user.py index 4112572bd..caaf9faa3 100644 --- a/src/mailman/model/tests/test_user.py +++ b/src/mailman/model/tests/test_user.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -72,10 +71,3 @@ class TestUser(unittest.TestCase): self.assertEqual(len(emails), 2) self.assertEqual(emails, set(['anne@example.com', 'aperson@example.com'])) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestUser)) - return suite diff --git a/src/mailman/mta/tests/test_aliases.py b/src/mailman/mta/tests/test_aliases.py index 3ba50cad7..c2f8a2087 100644 --- a/src/mailman/mta/tests/test_aliases.py +++ b/src/mailman/mta/tests/test_aliases.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -152,12 +151,3 @@ test-request@example.com lmtp:[127.0.0.1]:9024 test-subscribe@example.com lmtp:[127.0.0.1]:9024 test-unsubscribe@example.com lmtp:[127.0.0.1]:9024 """) - - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestAliases)) - suite.addTest(unittest.makeSuite(TestPostfix)) - return suite diff --git a/src/mailman/rest/tests/test_addresses.py b/src/mailman/rest/tests/test_addresses.py index 113ed1b25..d0ed70de2 100644 --- a/src/mailman/rest/tests/test_addresses.py +++ b/src/mailman/rest/tests/test_addresses.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -53,10 +52,3 @@ class TestAddresses(unittest.TestCase): self.assertEqual(exc.code, 404) else: raise AssertionError('Expected HTTPError') - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestAddresses)) - return suite diff --git a/src/mailman/rest/tests/test_domains.py b/src/mailman/rest/tests/test_domains.py index b04090b14..0709a6544 100644 --- a/src/mailman/rest/tests/test_domains.py +++ b/src/mailman/rest/tests/test_domains.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -74,10 +73,3 @@ class TestDomains(unittest.TestCase): 'http://localhost:9001/3.0/domains/example.com', method='DELETE') self.assertEqual(response.status, 204) self.assertEqual(getUtility(IListManager).get('ant@example.com'), None) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestDomains)) - return suite diff --git a/src/mailman/rest/tests/test_lists.py b/src/mailman/rest/tests/test_lists.py index fe8519404..b34ebf916 100644 --- a/src/mailman/rest/tests/test_lists.py +++ b/src/mailman/rest/tests/test_lists.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -80,10 +79,3 @@ class TestLists(unittest.TestCase): self.assertEqual(exc.code, 404) else: raise AssertionError('Expected HTTPError') - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestLists)) - return suite diff --git a/src/mailman/rest/tests/test_membership.py b/src/mailman/rest/tests/test_membership.py index ea3357506..a610b152a 100644 --- a/src/mailman/rest/tests/test_membership.py +++ b/src/mailman/rest/tests/test_membership.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -239,10 +238,3 @@ class TestMembership(unittest.TestCase): self.assertEqual(exc.code, 404) else: raise AssertionError('Expected HTTPError') - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestMembership)) - return suite diff --git a/src/mailman/rest/tests/test_root.py b/src/mailman/rest/tests/test_root.py index 856767947..a6a3c33ba 100644 --- a/src/mailman/rest/tests/test_root.py +++ b/src/mailman/rest/tests/test_root.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -84,10 +83,3 @@ class TestSystem(unittest.TestCase): self.assertEqual(exc.code, 405) else: raise AssertionError('Expected HTTPError') - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestSystem)) - return suite diff --git a/src/mailman/rest/tests/test_users.py b/src/mailman/rest/tests/test_users.py index 72a52af24..2f2664b3b 100644 --- a/src/mailman/rest/tests/test_users.py +++ b/src/mailman/rest/tests/test_users.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -52,10 +51,3 @@ class TestUsers(unittest.TestCase): self.assertEqual(exc.code, 404) else: raise AssertionError('Expected HTTPError') - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestUsers)) - return suite diff --git a/src/mailman/runners/tests/test_outgoing.py b/src/mailman/runners/tests/test_outgoing.py index ddabfbef7..41ba1a106 100644 --- a/src/mailman/runners/tests/test_outgoing.py +++ b/src/mailman/runners/tests/test_outgoing.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -537,13 +536,3 @@ Message-Id: <first> self.assertEqual( line[-63:-1], 'Discarding message with persistent temporary failures: <first>') - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestOnce)) - suite.addTest(unittest.makeSuite(TestVERPSettings)) - suite.addTest(unittest.makeSuite(TestSocketError)) - suite.addTest(unittest.makeSuite(TestSomeRecipientsFailed)) - return suite diff --git a/src/mailman/tests/test_configfile.py b/src/mailman/tests/test_configfile.py index 245b84df8..d19b7b73c 100644 --- a/src/mailman/tests/test_configfile.py +++ b/src/mailman/tests/test_configfile.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -180,11 +179,3 @@ class TestConfigFileSearchWithChroot(TestConfigFileBase): with open(os.path.join(fake_testdir, 'mailman.cfg'), 'w') as fp: print >> fp, '# Fake mailman.cfg file' self.assertEqual(search_for_configuration_file(), config_file) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestConfigFileSearch)) - suite.addTest(unittest.makeSuite(TestConfigFileSearchWithChroot)) - return suite diff --git a/src/mailman/tests/test_documentation.py b/src/mailman/tests/test_documentation.py index 8be0f74dd..c47e894c9 100644 --- a/src/mailman/tests/test_documentation.py +++ b/src/mailman/tests/test_documentation.py @@ -182,6 +182,10 @@ def setup(testobj): def test_suite(): + """Create test suites for all .rst documentation tests. + + .txt files are also tested, but .rst is highly preferred. + """ suite = unittest.TestSuite() topdir = os.path.dirname(mailman.__file__) packages = [] diff --git a/src/mailman/tests/test_membership.py b/src/mailman/tests/test_membership.py deleted file mode 100644 index 8425cf65f..000000000 --- a/src/mailman/tests/test_membership.py +++ /dev/null @@ -1,405 +0,0 @@ -# Copyright (C) 2001-2011 by the Free Software Foundation, Inc. -# -# This file is part of GNU Mailman. -# -# GNU Mailman is free software: you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free -# Software Foundation, either version 3 of the License, or (at your option) -# any later version. -# -# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# GNU Mailman. If not, see <http://www.gnu.org/licenses/>. - -"""Unit tests for OldStyleMemberships.""" - -from __future__ import absolute_import, unicode_literals - -__metaclass__ = type -__all__ = [ - 'test_suite', - ] - - -import time -import unittest - -from mailman.app.lifecycle import create_list, remove_list -from mailman.config import config -from mailman.interfaces.member import NotAMemberError -from mailman.testing.layers import ConfigLayer -from mailman.utilities import passwords - - - -def password(cleartext): - return passwords.make_secret(cleartext, passwords.Schemes.ssha) - - - -class TestNoMembers(unittest.TestCase): - layer = ConfigLayer - - def setUp(self): - self._mlist = create_list('test@example.com') - - def tearDown(self): - remove_list(self._mlist.fqdn_listname, self._mlist) - - def test_no_member(self): - eq = self.assertEqual - raises = self.assertRaises - mlist = self._mlist - eq(mlist.getMembers(), []) - eq(mlist.getRegularMemberKeys(), []) - eq(mlist.getDigestMemberKeys(), []) - self.failIf(mlist.isMember('nobody@dom.ain')) - raises(NotAMemberError, mlist.getMemberKey, 'nobody@dom.ain') - raises(NotAMemberError, mlist.getMemberCPAddress, 'nobody@dom.ain') - eq(mlist.getMemberCPAddresses(('nobody@dom.ain', 'noperson@dom.ain')), - [None, None]) - raises(NotAMemberError, mlist.getMemberPassword, 'nobody@dom.ain') - raises(NotAMemberError, mlist.authenticateMember, - 'nobody@dom.ain', 'blarg') - eq(mlist.getMemberLanguage('nobody@dom.ain'), mlist.preferred_language) - raises(NotAMemberError, mlist.getMemberOption, - 'nobody@dom.ain', config.AcknowledgePosts) - raises(NotAMemberError, mlist.getMemberName, 'nobody@dom.ain') - raises(NotAMemberError, mlist.getMemberTopics, 'nobody@dom.ain') - raises(NotAMemberError, mlist.removeMember, 'nobody@dom.ain') - - def test_add_member_mixed_case(self): - eq = self.assertEqual - mlist = self._mlist - mlist.addNewMember('APerson@dom.AIN') - eq(mlist.getMembers(), ['aperson@dom.ain']) - eq(mlist.getRegularMemberKeys(), ['aperson@dom.ain']) - self.failUnless(mlist.isMember('APerson@dom.AIN')) - self.failUnless(mlist.isMember('aperson@dom.ain')) - self.failUnless(mlist.isMember('APERSON@DOM.AIN')) - eq(mlist.getMemberCPAddress('aperson@dom.ain'), 'APerson@dom.AIN') - eq(mlist.getMemberCPAddress('APerson@dom.ain'), 'APerson@dom.AIN') - eq(mlist.getMemberCPAddress('APERSON@DOM.AIN'), 'APerson@dom.AIN') - eq(mlist.getMemberCPAddresses(('aperson@dom.ain',)), - ['APerson@dom.AIN']) - eq(mlist.getMemberCPAddresses(('APerson@dom.ain',)), - ['APerson@dom.AIN']) - eq(mlist.getMemberCPAddresses(('APERSON@DOM.AIN',)), - ['APerson@dom.AIN']) - - - -class TestMembers(unittest.TestCase): - def setUp(self): - self._member_password = password('xxXXxx') - self._mlist.addNewMember('person@dom.ain', - digest=0, - password=self._member_password, - language='xx', - realname='A. Nice Person') - - def test_add_member(self): - eq = self.assertEqual - mlist = self._mlist - eq(mlist.getMembers(), ['person@dom.ain']) - eq(mlist.getRegularMemberKeys(), ['person@dom.ain']) - eq(mlist.getDigestMemberKeys(), []) - self.failUnless(mlist.isMember('person@dom.ain')) - eq(mlist.getMemberKey('person@dom.ain'), 'person@dom.ain') - eq(mlist.getMemberCPAddress('person@dom.ain'), 'person@dom.ain') - eq(mlist.getMemberCPAddresses(('person@dom.ain', 'noperson@dom.ain')), - ['person@dom.ain', None]) - eq(mlist.getMemberPassword('person@dom.ain'), self._member_password) - eq(mlist.getMemberLanguage('person@dom.ain'), 'en') - eq(mlist.getMemberOption('person@dom.ain', config.Digests), 0) - eq(mlist.getMemberOption('person@dom.ain', config.AcknowledgePosts), 0) - eq(mlist.getMemberName('person@dom.ain'), 'A. Nice Person') - eq(mlist.getMemberTopics('person@dom.ain'), []) - - def test_authentication(self): - mlist = self._mlist - self.failIf(mlist.authenticateMember('person@dom.ain', 'xxx')) - self.assertEqual(mlist.authenticateMember('person@dom.ain', 'xxXXxx'), - self._member_password) - - def test_remove_member(self): - eq = self.assertEqual - raises = self.assertRaises - mlist = self._mlist - mlist.removeMember('person@dom.ain') - eq(mlist.getMembers(), []) - eq(mlist.getRegularMemberKeys(), []) - eq(mlist.getDigestMemberKeys(), []) - self.failIf(mlist.isMember('person@dom.ain')) - raises(NotAMemberError, mlist.getMemberKey, 'person@dom.ain') - raises(NotAMemberError, mlist.getMemberCPAddress, 'person@dom.ain') - eq(mlist.getMemberCPAddresses(('person@dom.ain', 'noperson@dom.ain')), - [None, None]) - raises(NotAMemberError, mlist.getMemberPassword, 'person@dom.ain') - raises(NotAMemberError, mlist.authenticateMember, - 'person@dom.ain', 'blarg') - eq(mlist.getMemberLanguage('person@dom.ain'), mlist.preferred_language) - raises(NotAMemberError, mlist.getMemberOption, - 'person@dom.ain', config.AcknowledgePosts) - raises(NotAMemberError, mlist.getMemberName, 'person@dom.ain') - raises(NotAMemberError, mlist.getMemberTopics, 'person@dom.ain') - - def test_remove_member_clears(self): - eq = self.assertEqual - raises = self.assertRaises - # We don't really care what the bounce info is - class Info: - pass - info = Info() - mlist = self._mlist - mlist.setBounceInfo('person@dom.ain', info) - mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.BYADMIN) - mlist.removeMember('person@dom.ain') - raises(NotAMemberError, mlist.getDeliveryStatus, 'person@dom.ain') - raises(NotAMemberError, mlist.getDeliveryStatusChangeTime, - 'person@dom.ain') - raises(NotAMemberError, mlist.getBounceInfo, 'person@dom.ain') - eq(mlist.getDeliveryStatusMembers(), []) - eq(mlist.getBouncingMembers(), []) - - def test_change_address(self): - eq = self.assertEqual - raises = self.assertRaises - mlist = self._mlist - mlist.changeMemberAddress('person@dom.ain', 'nice@dom.ain') - # Check the new address - eq(mlist.getMembers(), ['nice@dom.ain']) - eq(mlist.getRegularMemberKeys(), ['nice@dom.ain']) - eq(mlist.getDigestMemberKeys(), []) - self.failUnless(mlist.isMember('nice@dom.ain')) - eq(mlist.getMemberKey('nice@dom.ain'), 'nice@dom.ain') - eq(mlist.getMemberCPAddress('nice@dom.ain'), 'nice@dom.ain') - eq(mlist.getMemberCPAddresses(('nice@dom.ain', 'nonice@dom.ain')), - ['nice@dom.ain', None]) - eq(mlist.getMemberPassword('nice@dom.ain'), self._member_password) - eq(mlist.getMemberLanguage('nice@dom.ain'), 'en') - eq(mlist.getMemberOption('nice@dom.ain', config.Digests), 0) - eq(mlist.getMemberOption('nice@dom.ain', config.AcknowledgePosts), 0) - eq(mlist.getMemberName('nice@dom.ain'), 'A. Nice Person') - eq(mlist.getMemberTopics('nice@dom.ain'), []) - # Check the old address - eq(mlist.getMembers(), ['nice@dom.ain']) - eq(mlist.getRegularMemberKeys(), ['nice@dom.ain']) - eq(mlist.getDigestMemberKeys(), []) - self.failIf(mlist.isMember('person@dom.ain')) - raises(NotAMemberError, mlist.getMemberKey, 'person@dom.ain') - raises(NotAMemberError, mlist.getMemberCPAddress, 'person@dom.ain') - eq(mlist.getMemberCPAddresses(('person@dom.ain', 'noperson@dom.ain')), - [None, None]) - raises(NotAMemberError, mlist.getMemberPassword, 'person@dom.ain') - raises(NotAMemberError, mlist.authenticateMember, - 'person@dom.ain', 'blarg') - eq(mlist.getMemberLanguage('person@dom.ain'), mlist.preferred_language) - raises(NotAMemberError, mlist.getMemberOption, - 'person@dom.ain', config.AcknowledgePosts) - raises(NotAMemberError, mlist.getMemberName, 'person@dom.ain') - raises(NotAMemberError, mlist.getMemberTopics, 'person@dom.ain') - - def test_set_password(self): - eq = self.assertEqual - mlist = self._mlist - new_password = password('yyYYyy') - mlist.setMemberPassword('person@dom.ain', new_password) - eq(mlist.getMemberPassword('person@dom.ain'), new_password) - eq(mlist.authenticateMember('person@dom.ain', 'yyYYyy'), new_password) - self.failIf(mlist.authenticateMember('person@dom.ain', 'xxXXxx')) - - def test_set_language(self): - # This test requires that the 'xx' language be in the global - # config.LC_DESCRIPTIONS. Save that value and be sure to restore it - # after the test is done. - odesc = config.LC_DESCRIPTIONS.copy() - try: - config.add_language('xx', 'Xxian', 'utf-8') - self._mlist.add_language('xx') - self._mlist.setMemberLanguage('person@dom.ain', 'xx') - self.assertEqual(self._mlist.getMemberLanguage('person@dom.ain'), - 'xx') - finally: - config.LC_DESCRIPTIONS = odesc - - def test_basic_option(self): - eq = self.assertEqual - gmo = self._mlist.getMemberOption - # First test the current option values - eq(gmo('person@dom.ain', config.Digests), 0) - eq(gmo('person@dom.ain', config.DontReceiveOwnPosts), 0) - eq(gmo('person@dom.ain', config.AcknowledgePosts), 0) - eq(gmo('person@dom.ain', config.DisableMime), 0) - eq(gmo('person@dom.ain', config.ConcealSubscription), 0) - eq(gmo('person@dom.ain', config.SuppressPasswordReminder), 0) - eq(gmo('person@dom.ain', config.ReceiveNonmatchingTopics), 0) - - def test_set_digests(self): - eq = self.assertEqual - gmo = self._mlist.getMemberOption - self._mlist.setMemberOption('person@dom.ain', config.Digests, 1) - eq(gmo('person@dom.ain', config.Digests), 1) - eq(gmo('person@dom.ain', config.DontReceiveOwnPosts), 0) - eq(gmo('person@dom.ain', config.AcknowledgePosts), 0) - eq(gmo('person@dom.ain', config.DisableMime), 0) - eq(gmo('person@dom.ain', config.ConcealSubscription), 0) - eq(gmo('person@dom.ain', config.SuppressPasswordReminder), 0) - eq(gmo('person@dom.ain', config.ReceiveNonmatchingTopics), 0) - - def test_set_disable_delivery(self): - eq = self.assertEqual - gds = self._mlist.getDeliveryStatus - eq(gds('person@dom.ain'), MemberAdaptor.ENABLED) - self._mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.UNKNOWN) - eq(gds('person@dom.ain'), MemberAdaptor.UNKNOWN) - self._mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.BYUSER) - eq(gds('person@dom.ain'), MemberAdaptor.BYUSER) - self._mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.BYBOUNCE) - eq(gds('person@dom.ain'), MemberAdaptor.BYBOUNCE) - self._mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.BYADMIN) - eq(gds('person@dom.ain'), MemberAdaptor.BYADMIN) - - def test_delivery_status_time(self): - now = time.time() - time.sleep(1) - self._mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.BYUSER) - self.failUnless( - self._mlist.getDeliveryStatusChangeTime('person@dom.ain') - > now) - self._mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.ENABLED) - self.assertEqual( - self._mlist.getDeliveryStatusChangeTime('person@dom.ain'), - 0) - - def test_set_dont_receive_own_posts(self): - eq = self.assertEqual - gmo = self._mlist.getMemberOption - self._mlist.setMemberOption('person@dom.ain', - config.DontReceiveOwnPosts, 1) - eq(gmo('person@dom.ain', config.Digests), 0) - eq(gmo('person@dom.ain', config.DontReceiveOwnPosts), 1) - eq(gmo('person@dom.ain', config.AcknowledgePosts), 0) - eq(gmo('person@dom.ain', config.DisableMime), 0) - eq(gmo('person@dom.ain', config.ConcealSubscription), 0) - eq(gmo('person@dom.ain', config.SuppressPasswordReminder), 0) - eq(gmo('person@dom.ain', config.ReceiveNonmatchingTopics), 0) - - def test_set_acknowledge_posts(self): - eq = self.assertEqual - gmo = self._mlist.getMemberOption - self._mlist.setMemberOption('person@dom.ain', - config.AcknowledgePosts, 1) - eq(gmo('person@dom.ain', config.Digests), 0) - eq(gmo('person@dom.ain', config.DontReceiveOwnPosts), 0) - eq(gmo('person@dom.ain', config.AcknowledgePosts), 1) - eq(gmo('person@dom.ain', config.DisableMime), 0) - eq(gmo('person@dom.ain', config.ConcealSubscription), 0) - eq(gmo('person@dom.ain', config.SuppressPasswordReminder), 0) - eq(gmo('person@dom.ain', config.ReceiveNonmatchingTopics), 0) - - def test_disable_mime(self): - eq = self.assertEqual - gmo = self._mlist.getMemberOption - self._mlist.setMemberOption('person@dom.ain', - config.DisableMime, 1) - eq(gmo('person@dom.ain', config.Digests), 0) - eq(gmo('person@dom.ain', config.DontReceiveOwnPosts), 0) - eq(gmo('person@dom.ain', config.AcknowledgePosts), 0) - eq(gmo('person@dom.ain', config.DisableMime), 1) - eq(gmo('person@dom.ain', config.ConcealSubscription), 0) - eq(gmo('person@dom.ain', config.SuppressPasswordReminder), 0) - eq(gmo('person@dom.ain', config.ReceiveNonmatchingTopics), 0) - - def test_conceal_subscription(self): - eq = self.assertEqual - gmo = self._mlist.getMemberOption - self._mlist.setMemberOption('person@dom.ain', - config.ConcealSubscription, 1) - eq(gmo('person@dom.ain', config.Digests), 0) - eq(gmo('person@dom.ain', config.DontReceiveOwnPosts), 0) - eq(gmo('person@dom.ain', config.AcknowledgePosts), 0) - eq(gmo('person@dom.ain', config.DisableMime), 0) - eq(gmo('person@dom.ain', config.ConcealSubscription), 1) - eq(gmo('person@dom.ain', config.SuppressPasswordReminder), 0) - eq(gmo('person@dom.ain', config.ReceiveNonmatchingTopics), 0) - - def test_suppress_password_reminder(self): - eq = self.assertEqual - gmo = self._mlist.getMemberOption - self._mlist.setMemberOption('person@dom.ain', - config.SuppressPasswordReminder, 1) - eq(gmo('person@dom.ain', config.Digests), 0) - eq(gmo('person@dom.ain', config.DontReceiveOwnPosts), 0) - eq(gmo('person@dom.ain', config.AcknowledgePosts), 0) - eq(gmo('person@dom.ain', config.DisableMime), 0) - eq(gmo('person@dom.ain', config.ConcealSubscription), 0) - eq(gmo('person@dom.ain', config.SuppressPasswordReminder), 1) - eq(gmo('person@dom.ain', config.ReceiveNonmatchingTopics), 0) - - def test_receive_nonmatching_topics(self): - eq = self.assertEqual - gmo = self._mlist.getMemberOption - self._mlist.setMemberOption('person@dom.ain', - config.ReceiveNonmatchingTopics, 1) - eq(gmo('person@dom.ain', config.Digests), 0) - eq(gmo('person@dom.ain', config.DontReceiveOwnPosts), 0) - eq(gmo('person@dom.ain', config.AcknowledgePosts), 0) - eq(gmo('person@dom.ain', config.DisableMime), 0) - eq(gmo('person@dom.ain', config.ConcealSubscription), 0) - eq(gmo('person@dom.ain', config.SuppressPasswordReminder), 0) - eq(gmo('person@dom.ain', config.ReceiveNonmatchingTopics), 1) - - def test_member_name(self): - self._mlist.setMemberName('person@dom.ain', 'A. Good Person') - self.assertEqual(self._mlist.getMemberName('person@dom.ain'), - 'A. Good Person') - - def test_member_topics(self): - eq = self.assertEqual - mlist = self._mlist - mlist.setMemberTopics('person@dom.ain', ['topic1', 'topic2', 'topic3']) - eq(mlist.getMemberTopics('person@dom.ain'), - ['topic1', 'topic2', 'topic3']) - mlist.setMemberTopics('person@dom.ain', None) - eq(mlist.getMemberTopics('person@dom.ain'), []) - - def test_bounce_info(self): - eq = self.assertEqual - mlist = self._mlist - # We don't really care what info is stored - class Info: pass - info = Info() - # Test setting and getting - mlist.setBounceInfo('person@dom.ain', info) - eq(mlist.getBounceInfo('person@dom.ain'), info) - # Test case sensitivity - eq(mlist.getBounceInfo('PERSON@dom.ain'), info) - info2 = Info() - mlist.setBounceInfo('PeRsOn@dom.ain', info2) - eq(mlist.getBounceInfo('person@dom.ain'), info2) - eq(mlist.getBounceInfo('PeRsOn@dom.ain'), info2) - eq(mlist.getBounceInfo('PERSON@DOM.AIN'), info2) - # Test getBouncingMembers... - eq(mlist.getBouncingMembers(), ['person@dom.ain']) - # Test clearing bounce information... - mlist.setBounceInfo('person@dom.ain', None) - eq(mlist.getBouncingMembers(), []) - eq(mlist.getBounceInfo('person@dom.ain'), None) - # Make sure that you can clear the attributes case insensitively - mlist.setBounceInfo('person@dom.ain', info) - mlist.setBounceInfo('PERSON@dom.ain', None) - eq(mlist.getBouncingMembers(), []) - - - -def test_suite(): - suite = unittest.TestSuite() - # XXX 2010-05-06 None of these tests work. - ## suite.addTest(unittest.makeSuite(TestNoMembers)) - ## suite.addTest(unittest.makeSuite(TestMembers)) - return suite diff --git a/src/mailman/utilities/tests/test_email.py b/src/mailman/utilities/tests/test_email.py index d34c55ee8..8b847f475 100644 --- a/src/mailman/utilities/tests/test_email.py +++ b/src/mailman/utilities/tests/test_email.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -40,10 +39,3 @@ class TestEmail(unittest.TestCase): def test_no_at_split(self): self.assertEqual(split_email('anne'), ('anne', None)) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestEmail)) - return suite diff --git a/src/mailman/utilities/tests/test_import.py b/src/mailman/utilities/tests/test_import.py index b31de46cf..d66faeff0 100644 --- a/src/mailman/utilities/tests/test_import.py +++ b/src/mailman/utilities/tests/test_import.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -68,10 +67,3 @@ class TestBasicImport(unittest.TestCase): self._import() self.assertTrue(self._mlist.include_list_post_header) self.assertTrue(self._mlist.include_rfc2369_headers) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestBasicImport)) - return suite diff --git a/src/mailman/utilities/tests/test_passwords.py b/src/mailman/utilities/tests/test_passwords.py index c9b3d2e91..058cf97de 100644 --- a/src/mailman/utilities/tests/test_passwords.py +++ b/src/mailman/utilities/tests/test_passwords.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -36,7 +35,7 @@ from mailman.utilities import passwords -class TestPasswordsBase(unittest.TestCase): +class PasswordsTestBase: scheme = None def setUp(self): @@ -72,7 +71,7 @@ class TestPasswordsBase(unittest.TestCase): -class TestBogusPasswords(TestPasswordsBase): +class TestBogusPasswords(PasswordsTestBase, unittest.TestCase): scheme = -1 def test_passwords(self): @@ -89,7 +88,7 @@ class TestBogusPasswords(TestPasswordsBase): -class TestNonePasswords(TestPasswordsBase): +class TestNonePasswords(PasswordsTestBase, unittest.TestCase): scheme = passwords.Schemes.no_scheme def test_passwords(self): @@ -112,19 +111,19 @@ class TestNonePasswords(TestPasswordsBase): -class TestCleartextPasswords(TestPasswordsBase): +class TestCleartextPasswords(PasswordsTestBase, unittest.TestCase): scheme = passwords.Schemes.cleartext -class TestSHAPasswords(TestPasswordsBase): +class TestSHAPasswords(PasswordsTestBase, unittest.TestCase): scheme = passwords.Schemes.sha -class TestSSHAPasswords(TestPasswordsBase): +class TestSSHAPasswords(PasswordsTestBase, unittest.TestCase): scheme = passwords.Schemes.ssha -class TestPBKDF2Passwords(TestPasswordsBase): +class TestPBKDF2Passwords(PasswordsTestBase, unittest.TestCase): scheme = passwords.Schemes.pbkdf2 @@ -203,17 +202,3 @@ class TestPasswordGeneration(unittest.TestCase): def test_encrypt_password_scheme_value_error(self): self.assertRaises(ValueError, passwords.encrypt_password, 'abc', 'foo') - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestBogusPasswords)) - suite.addTest(unittest.makeSuite(TestNonePasswords)) - suite.addTest(unittest.makeSuite(TestCleartextPasswords)) - suite.addTest(unittest.makeSuite(TestSHAPasswords)) - suite.addTest(unittest.makeSuite(TestSSHAPasswords)) - suite.addTest(unittest.makeSuite(TestPBKDF2Passwords)) - suite.addTest(unittest.makeSuite(TestSchemeLookup)) - suite.addTest(unittest.makeSuite(TestPasswordGeneration)) - return suite diff --git a/src/mailman/utilities/tests/test_templates.py b/src/mailman/utilities/tests/test_templates.py index e21b44544..504972da3 100644 --- a/src/mailman/utilities/tests/test_templates.py +++ b/src/mailman/utilities/tests/test_templates.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -276,12 +275,3 @@ This is a very nice template. It has a few substitutions. It will not be wrapped. """) - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestSearchOrder)) - suite.addTest(unittest.makeSuite(TestFind)) - suite.addTest(unittest.makeSuite(TestMake)) - return suite diff --git a/src/mailman/utilities/tests/test_wrap.py b/src/mailman/utilities/tests/test_wrap.py index 2fc6c6ccf..5ef658e14 100644 --- a/src/mailman/utilities/tests/test_wrap.py +++ b/src/mailman/utilities/tests/test_wrap.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'test_suite', ] @@ -142,10 +141,3 @@ This is a single paragraph that consists of one sentence. And another one that breaks because it is indented. Followed by one more paragraph.""") - - - -def test_suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestWrap)) - return suite |
