summaryrefslogtreecommitdiff
path: root/src/mailman/rest/tests/test_lists.py
diff options
context:
space:
mode:
authorHarshit Bansal2016-04-15 01:24:44 +0530
committerBarry Warsaw2016-04-28 20:58:44 -0400
commit17103aae14f53655fd7685a0867724f6420b9282 (patch)
treecc9b4419e10b583cc73e643d0a7fe2440d9cc010 /src/mailman/rest/tests/test_lists.py
parenta5a64b82570b2a925efe6588f876dc858e001716 (diff)
downloadmailman-17103aae14f53655fd7685a0867724f6420b9282.tar.gz
mailman-17103aae14f53655fd7685a0867724f6420b9282.tar.zst
mailman-17103aae14f53655fd7685a0867724f6420b9282.zip
Diffstat (limited to 'src/mailman/rest/tests/test_lists.py')
-rw-r--r--src/mailman/rest/tests/test_lists.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/mailman/rest/tests/test_lists.py b/src/mailman/rest/tests/test_lists.py
index 08c29151f..207743e50 100644
--- a/src/mailman/rest/tests/test_lists.py
+++ b/src/mailman/rest/tests/test_lists.py
@@ -213,6 +213,39 @@ class TestLists(unittest.TestCase):
'/owner/nobody@example.com')
self.assertEqual(cm.exception.code, 404)
+ def test_list_mass_unsubscribe(self):
+ with transaction():
+ aperson = self._usermanager.create_address('aperson@test.com')
+ bperson = self._usermanager.create_address('bperson@test.com')
+ cperson = self._usermanager.create_address('cperson@test.com')
+ mlist = create_list('testlist@example.com')
+ mlist.subscribe(aperson)
+ mlist.subscribe(bperson)
+ mlist.subscribe(cperson)
+ with self.assertRaises(HTTPError) as cm:
+ call_api('http://localhost:9001/3.0/lists/bogus.example.com'
+ '/roster/member', None, 'DELETE')
+ self.assertEqual(cm.exception.code, 404)
+ with self.assertRaises(HTTPError) as cm:
+ call_api('http://localhost:9001/3.0/lists/testlist.example.com'
+ '/roster/member', None, 'DELETE')
+ self.assertEqual(cm.exception.code, 400)
+ self.assertEqual(cm.exception.reason, b'Invalid Input.')
+ resource, response = call_api(
+ 'http://127.0.0.1:9001/3.0/lists/testlist.example.com'
+ '/roster/member', {'emails': ['aperson@test.com']}, 'DELETE')
+ self.assertEqual(response.status, 204)
+ resource, response = call_api(
+ 'http://127.0.0.1:9001/3.0/lists/testlist.example.com'
+ '/roster/member', {'emails': ['bperson@test.com',
+ 'cperson@test.com',
+ 'bperson@test.com',
+ 'bogus@test.com']}, 'DELETE')
+ self.assertEqual(response.status, 200)
+ self.assertEqual(resource['bperson@test.com'],
+ 'Member already deleted.')
+ self.assertEqual(resource['bogus@test.com'], 'No such member.')
+
class TestListArchivers(unittest.TestCase):
"""Test corner cases for list archivers."""