# Copyright (C) 2014-2015 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 . """Test list configuration via the REST API.""" __all__ = [ 'TestConfiguration', ] import unittest from mailman.app.lifecycle import create_list from mailman.database.transaction import transaction from mailman.interfaces.mailinglist import IAcceptableAliasSet from mailman.testing.helpers import call_api from mailman.testing.layers import RESTLayer class TestConfiguration(unittest.TestCase): """Test list configuration via the REST API.""" layer = RESTLayer def setUp(self): with transaction(): self._mlist = create_list('test@example.com') def test_put_configuration(self): aliases = [ 'ant@example.com', 'bee@example.com', 'cat@example.com', ] # When using PUT, all writable attributes must be included. resource, response = call_api( 'http://localhost:9001/3.0/lists/test@example.com/config', dict( acceptable_aliases=aliases, admin_immed_notify=False, admin_notify_mchanges=True, administrivia=False, advertised=False, anonymous_list=True, archive_policy='never', autorespond_owner='respond_and_discard', autorespond_postings='respond_and_continue', autorespond_requests='respond_and_discard', autoresponse_grace_period='45d', autoresponse_owner_text='the owner', autoresponse_postings_text='the mailing list', autoresponse_request_text='the robot', display_name='Fnords', description='This is my mailing list', include_rfc2369_headers=False, allow_list_posts=False, digest_size_threshold=10.5, posting_pipeline='virgin', filter_content=True, first_strip_reply_to=True, convert_html_to_plaintext=True, collapse_alternatives=False, reply_goes_to_list='point_to_list', reply_to_address='bee@example.com', send_welcome_message=False, subject_prefix='[ant]', subscription_policy='confirm_then_moderate', welcome_message_uri='mailman:///welcome.txt', default_member_action='hold', default_nonmember_action='discard', ), 'PUT') self.assertEqual(response.status, 204) self.assertEqual(self._mlist.display_name, 'Fnords') # All three acceptable aliases were set. self.assertEqual(set(IAcceptableAliasSet(self._mlist).aliases), set(aliases))