From 17103aae14f53655fd7685a0867724f6420b9282 Mon Sep 17 00:00:00 2001 From: Harshit Bansal Date: Fri, 15 Apr 2016 01:24:44 +0530 Subject: Add batch unsubscribe option to REST API. --- src/mailman/rest/tests/test_lists.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/mailman/rest/tests/test_lists.py') 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.""" -- cgit v1.2.3-70-g09d2