diff options
| author | Barry Warsaw | 2016-10-25 21:18:44 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2016-10-25 21:18:44 -0400 |
| commit | 314f6002955b9b3f94ec00774aa230f5dd1f9374 (patch) | |
| tree | ad3ad14189820774c028ad90fbf2770e93e27d30 /src | |
| parent | 686e01c717f69fb3ab7918dc933c03cf563258e7 (diff) | |
| download | mailman-314f6002955b9b3f94ec00774aa230f5dd1f9374.tar.gz mailman-314f6002955b9b3f94ec00774aa230f5dd1f9374.tar.zst mailman-314f6002955b9b3f94ec00774aa230f5dd1f9374.zip | |
Diffstat (limited to 'src')
| -rw-r--r-- | src/mailman/docs/NEWS.rst | 1 | ||||
| -rw-r--r-- | src/mailman/interfaces/bans.py | 2 | ||||
| -rw-r--r-- | src/mailman/interfaces/subscriptions.py | 4 | ||||
| -rw-r--r-- | src/mailman/model/tests/test_bans.py | 19 |
4 files changed, 16 insertions, 10 deletions
diff --git a/src/mailman/docs/NEWS.rst b/src/mailman/docs/NEWS.rst index d0d125733..bc57591b3 100644 --- a/src/mailman/docs/NEWS.rst +++ b/src/mailman/docs/NEWS.rst @@ -227,6 +227,7 @@ REST string in the REST API. Given by Aurélien Bompard. * A list's ``moderator_password`` can be set via the REST API. Given by Andrew Breksa. (Closes #207) + * Banned addresses can now be paginated. Given by Amit. (Closes #284) Other ----- diff --git a/src/mailman/interfaces/bans.py b/src/mailman/interfaces/bans.py index 72ee525d1..055ad69a3 100644 --- a/src/mailman/interfaces/bans.py +++ b/src/mailman/interfaces/bans.py @@ -47,7 +47,7 @@ class IBanManager(Interface): """ bans = Attribute( - """A `QuerySequence` over all the banned emails""") + """A `QuerySequence` over all the banned emails.""") def ban(email): """Ban an email address from subscribing to a mailing list. diff --git a/src/mailman/interfaces/subscriptions.py b/src/mailman/interfaces/subscriptions.py index e707cf706..284261de5 100644 --- a/src/mailman/interfaces/subscriptions.py +++ b/src/mailman/interfaces/subscriptions.py @@ -148,8 +148,8 @@ class ISubscriptionService(Interface): :type list_id: string :param role: The member role. :type role: `MemberRole` - :return: The list of all memberships, which may be empty. - :rtype: list of `IMember` + :return: A sequence of all memberships, which may be empty. + :rtype: A `QuerySequence` of `IMember` """ def find_member(subscriber=None, list_id=None, role=None): diff --git a/src/mailman/model/tests/test_bans.py b/src/mailman/model/tests/test_bans.py index d0b6dc995..c993a2043 100644 --- a/src/mailman/model/tests/test_bans.py +++ b/src/mailman/model/tests/test_bans.py @@ -23,7 +23,6 @@ from mailman.app.lifecycle import create_list from mailman.interfaces.bans import IBanManager from mailman.interfaces.listmanager import IListManager from mailman.testing.layers import ConfigLayer -from mailman.utilities.queries import QuerySequence from zope.component import getUtility @@ -48,10 +47,16 @@ class TestMailingListBans(unittest.TestCase): self.assertEqual([ban.email for ban in global_ban_manager], ['bart@example.com']) - def test_bans_querysequence(self): - # Bans returns a `QuerySequence`. + def test_bans_sequence(self): + # Bans returns a pageable sequence. self._manager.ban('bee@example.com') - self.assertEqual(len(self._manager.bans), 1) - ban = self._manager.bans[0] - self.assertEqual(ban.email, 'bee@example.com') - self.assertIsInstance(self._manager.bans, QuerySequence) + self._manager.ban('ant@example.com') + # The results can be len()'d. + self.assertEqual(len(self._manager.bans), 2) + # The results can be iterated. + self.assertEqual(['ant@example.com', 'bee@example.com'], + sorted(ban.email for ban in self._manager.bans)) + # The results can be indexed. + self.assertEqual( + sorted([self._manager.bans[0].email, self._manager.bans[1].email]), + ['ant@example.com', 'bee@example.com']) |
