summaryrefslogtreecommitdiff
path: root/src/mailman/rest/tests/test_membership.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/rest/tests/test_membership.py')
-rw-r--r--src/mailman/rest/tests/test_membership.py28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/mailman/rest/tests/test_membership.py b/src/mailman/rest/tests/test_membership.py
index 1c27c538f..bd7bb9dad 100644
--- a/src/mailman/rest/tests/test_membership.py
+++ b/src/mailman/rest/tests/test_membership.py
@@ -29,7 +29,7 @@ import unittest
from mailman.app.lifecycle import create_list
from mailman.config import config
from mailman.database.transaction import transaction
-from mailman.interfaces.member import DeliveryMode
+from mailman.interfaces.member import DeliveryMode, MemberRole
from mailman.interfaces.usermanager import IUserManager
from mailman.testing.helpers import (
TestableMaster, call_api, get_lmtp_client, make_testable_runner,
@@ -283,6 +283,32 @@ class TestMembership(unittest.TestCase):
self.assertEqual(cm.exception.reason,
b'Cannot convert parameters: moderation_action')
+ def test_bad_preferences_url(self):
+ with transaction():
+ subscribe(self._mlist, 'Anne')
+ with self.assertRaises(HTTPError) as cm:
+ call_api('http://localhost:9001/3.0/members/1/preferences/bogus')
+ self.assertEqual(cm.exception.code, 404)
+
+ def test_not_a_member_preferences(self):
+ with self.assertRaises(HTTPError) as cm:
+ call_api('http://localhost:9001/3.0/members/1/preferences')
+ self.assertEqual(cm.exception.code, 404)
+
+ def test_not_a_member_all_preferences(self):
+ with self.assertRaises(HTTPError) as cm:
+ call_api('http://localhost:9001/3.0/members/1/all/preferences')
+ self.assertEqual(cm.exception.code, 404)
+
+ def test_delete_other_role(self):
+ with transaction():
+ subscribe(self._mlist, 'Anne', MemberRole.moderator)
+ response, headers = call_api(
+ 'http://localhost:9001/3.0/members/1',
+ method='DELETE')
+ self.assertEqual(headers.status, 204)
+ self.assertEqual(len(list(self._mlist.moderators.members)), 0)
+
class CustomLayer(ConfigLayer):