diff --git a/src/postorius/tests/fixtures/vcr_cassettes/TestSubscription.test_banned_address.yaml b/src/postorius/tests/fixtures/vcr_cassettes/TestSubscription.test_banned_address.yaml new file mode 100644 index 0000000..d02772f --- /dev/null +++ b/src/postorius/tests/fixtures/vcr_cassettes/TestSubscription.test_banned_address.yaml @@ -0,0 +1,615 @@ +interactions: +- request: + body: mail_host=example.com + headers: + accept-encoding: ['gzip, deflate'] + !!python/unicode 'content-type': [!!python/unicode 'application/x-www-form-urlencoded'] + method: !!python/unicode 'POST' + uri: http://localhost:9001/3.0/domains + response: + body: {string: !!python/unicode ''} + headers: + content-length: ['0'] + content-type: [application/json; charset=UTF-8] + location: ['http://localhost:9001/3.0/domains/example.com'] + status: {code: 201, message: Created} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/domains/example.com + response: + body: {string: !!python/unicode '{"base_url": "http://example.com", "description": + null, "http_etag": "\"e736411818ff1815ca83575e0958c38c5188f0a4\"", "mail_host": + "example.com", "self_link": "http://localhost:9001/3.0/domains/example.com", + "url_host": "example.com"}'} + headers: + content-length: ['233'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: fqdn_listname=open_list%40example.com + headers: + accept-encoding: ['gzip, deflate'] + !!python/unicode 'content-type': [!!python/unicode 'application/x-www-form-urlencoded'] + method: !!python/unicode 'POST' + uri: http://localhost:9001/3.0/lists + response: + body: {string: !!python/unicode ''} + headers: + content-length: ['0'] + content-type: [application/json; charset=UTF-8] + location: ['http://localhost:9001/3.0/lists/open_list.example.com'] + status: {code: 201, message: Created} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list.example.com + response: + body: {string: !!python/unicode '{"display_name": "Open_list", "fqdn_listname": + "open_list@example.com", "http_etag": "\"6726e101e1dd1de6043eee72f741d4c2479f4735\"", + "list_id": "open_list.example.com", "list_name": "open_list", "mail_host": + "example.com", "member_count": 0, "self_link": "http://localhost:9001/3.0/lists/open_list.example.com", + "volume": 1}'} + headers: + content-length: ['324'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list@example.com/config + response: + body: {string: !!python/unicode '{"acceptable_aliases": [], "admin_immed_notify": + true, "admin_notify_mchanges": false, "administrivia": true, "advertised": + true, "allow_list_posts": true, "anonymous_list": false, "archive_policy": + "public", "autorespond_owner": "none", "autorespond_postings": "none", "autorespond_requests": + "none", "autoresponse_grace_period": "90d", "autoresponse_owner_text": "", + "autoresponse_postings_text": "", "autoresponse_request_text": "", "bounces_address": + "open_list-bounces@example.com", "collapse_alternatives": true, "convert_html_to_plaintext": + false, "created_at": "2005-08-01T07:49:23", "default_member_action": "defer", + "default_nonmember_action": "hold", "description": "", "digest_last_sent_at": + null, "digest_send_periodic": true, "digest_size_threshold": 30.0, "digest_volume_frequency": + "monthly", "digests_enabled": true, "display_name": "Open_list", "filter_content": + false, "first_strip_reply_to": false, "fqdn_listname": "open_list@example.com", + "goodbye_message_uri": "", "http_etag": "\"3d16b6c6d1bb8fed130bd061c70a0894856a4ca8\"", + "include_rfc2369_headers": true, "join_address": "open_list-join@example.com", + "last_post_at": null, "leave_address": "open_list-leave@example.com", "list_name": + "open_list", "mail_host": "example.com", "next_digest_number": 1, "no_reply_address": + "noreply@example.com", "owner_address": "open_list-owner@example.com", "post_id": + 1, "posting_address": "open_list@example.com", "posting_pipeline": "default-posting-pipeline", + "reply_goes_to_list": "no_munging", "reply_to_address": "", "request_address": + "open_list-request@example.com", "scheme": "http", "send_welcome_message": + true, "subject_prefix": "[Open_list] ", "subscription_policy": "confirm", + "volume": 1, "web_host": "example.com", "welcome_message_uri": "mailman:///welcome.txt"}'} + headers: + content-length: ['1790'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: subscription_policy=open + headers: + accept-encoding: ['gzip, deflate'] + !!python/unicode 'content-type': [!!python/unicode 'application/x-www-form-urlencoded'] + method: !!python/unicode 'PATCH' + uri: http://localhost:9001/3.0/lists/open_list@example.com/config + response: + body: {string: !!python/unicode ''} + headers: + content-length: ['0'] + status: {code: 204, message: No Content} +- request: + body: fqdn_listname=moderate_subs%40example.com + headers: + accept-encoding: ['gzip, deflate'] + !!python/unicode 'content-type': [!!python/unicode 'application/x-www-form-urlencoded'] + method: !!python/unicode 'POST' + uri: http://localhost:9001/3.0/lists + response: + body: {string: !!python/unicode ''} + headers: + content-length: ['0'] + content-type: [application/json; charset=UTF-8] + location: ['http://localhost:9001/3.0/lists/moderate_subs.example.com'] + status: {code: 201, message: Created} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/moderate_subs.example.com + response: + body: {string: !!python/unicode '{"display_name": "Moderate_subs", "fqdn_listname": + "moderate_subs@example.com", "http_etag": "\"4cf5a031a451ad84a54e4c708cacda8e676e617f\"", + "list_id": "moderate_subs.example.com", "list_name": "moderate_subs", "mail_host": + "example.com", "member_count": 0, "self_link": "http://localhost:9001/3.0/lists/moderate_subs.example.com", + "volume": 1}'} + headers: + content-length: ['344'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/moderate_subs@example.com/config + response: + body: {string: !!python/unicode '{"acceptable_aliases": [], "admin_immed_notify": + true, "admin_notify_mchanges": false, "administrivia": true, "advertised": + true, "allow_list_posts": true, "anonymous_list": false, "archive_policy": + "public", "autorespond_owner": "none", "autorespond_postings": "none", "autorespond_requests": + "none", "autoresponse_grace_period": "90d", "autoresponse_owner_text": "", + "autoresponse_postings_text": "", "autoresponse_request_text": "", "bounces_address": + "moderate_subs-bounces@example.com", "collapse_alternatives": true, "convert_html_to_plaintext": + false, "created_at": "2005-08-01T07:49:23", "default_member_action": "defer", + "default_nonmember_action": "hold", "description": "", "digest_last_sent_at": + null, "digest_send_periodic": true, "digest_size_threshold": 30.0, "digest_volume_frequency": + "monthly", "digests_enabled": true, "display_name": "Moderate_subs", "filter_content": + false, "first_strip_reply_to": false, "fqdn_listname": "moderate_subs@example.com", + "goodbye_message_uri": "", "http_etag": "\"bbeb372001a49a25fa038477abd59e8b3c45a20d\"", + "include_rfc2369_headers": true, "join_address": "moderate_subs-join@example.com", + "last_post_at": null, "leave_address": "moderate_subs-leave@example.com", + "list_name": "moderate_subs", "mail_host": "example.com", "next_digest_number": + 1, "no_reply_address": "noreply@example.com", "owner_address": "moderate_subs-owner@example.com", + "post_id": 1, "posting_address": "moderate_subs@example.com", "posting_pipeline": + "default-posting-pipeline", "reply_goes_to_list": "no_munging", "reply_to_address": + "", "request_address": "moderate_subs-request@example.com", "scheme": "http", + "send_welcome_message": true, "subject_prefix": "[Moderate_subs] ", "subscription_policy": + "confirm", "volume": 1, "web_host": "example.com", "welcome_message_uri": + "mailman:///welcome.txt"}'} + headers: + content-length: ['1830'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: subscription_policy=moderate + headers: + accept-encoding: ['gzip, deflate'] + !!python/unicode 'content-type': [!!python/unicode 'application/x-www-form-urlencoded'] + method: !!python/unicode 'PATCH' + uri: http://localhost:9001/3.0/lists/moderate_subs@example.com/config + response: + body: {string: !!python/unicode ''} + headers: + content-length: ['0'] + status: {code: 204, message: No Content} +- request: + body: email=test%40example.com + headers: + accept-encoding: ['gzip, deflate'] + !!python/unicode 'content-type': [!!python/unicode 'application/x-www-form-urlencoded'] + method: !!python/unicode 'POST' + uri: http://localhost:9001/3.0/users + response: + body: {string: !!python/unicode ''} + headers: + content-length: ['0'] + content-type: [application/json; charset=UTF-8] + location: ['http://localhost:9001/3.0/users/15'] + status: {code: 201, message: Created} +- request: + body: email=fritz%40example.org + headers: + accept-encoding: ['gzip, deflate'] + !!python/unicode 'content-type': [!!python/unicode 'application/x-www-form-urlencoded'] + method: !!python/unicode 'POST' + uri: http://localhost:9001/3.0/users/15/addresses + response: + body: {string: !!python/unicode ''} + headers: + content-length: ['0'] + content-type: [application/json; charset=UTF-8] + location: ['http://localhost:9001/3.0/addresses/fritz@example.org'] + status: {code: 201, message: Created} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/users/15 + response: + body: {string: !!python/unicode '{"created_on": "2005-08-01T07:49:23", "http_etag": + "\"e760c1db5c21a12c6e8bf64b42d61f579417f2d9\"", "is_server_owner": false, + "password": "$6$rounds=604230$3TJsGBKJqausTP/q$Z/Q16Iso7lY2FPuU/csWFng7Sw7fJIKCnDCySHSPvAy.Klq8Lz8W2ZZNT.WLNgpvnshGlT0yH1pBDgBhdViRv0", + "self_link": "http://localhost:9001/3.0/users/15", "user_id": 15}'} + headers: + content-length: ['326'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/users/15/addresses + response: + body: {string: !!python/unicode '{"entries": [{"email": "fritz@example.org", "http_etag": + "\"f5e7dce17a939b6cd74400155bc8208939e35913\"", "original_email": "fritz@example.org", + "registered_on": "2005-08-01T07:49:23", "self_link": "http://localhost:9001/3.0/addresses/fritz@example.org", + "user": "http://localhost:9001/3.0/users/15"}, {"email": "test@example.com", + "http_etag": "\"7e89118330bb8d4cfca6242e4023e3685cfe802f\"", "original_email": + "test@example.com", "registered_on": "2005-08-01T07:49:23", "self_link": "http://localhost:9001/3.0/addresses/test@example.com", + "user": "http://localhost:9001/3.0/users/15"}], "http_etag": "\"022eb06e8ccdd9d0317e80895bcf7fe7341666d6\"", + "start": 0, "total_size": 2}'} + headers: + content-length: ['676'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'POST' + uri: http://localhost:9001/3.0/addresses/fritz@example.org/verify + response: + body: {string: !!python/unicode ''} + headers: + content-length: ['0'] + status: {code: 204, message: No Content} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'POST' + uri: http://localhost:9001/3.0/addresses/test@example.com/verify + response: + body: {string: !!python/unicode ''} + headers: + content-length: ['0'] + status: {code: 204, message: No Content} +- request: + body: email=test%40example.com + headers: + accept-encoding: ['gzip, deflate'] + !!python/unicode 'content-type': [!!python/unicode 'application/x-www-form-urlencoded'] + method: !!python/unicode 'POST' + uri: http://localhost:9001/3.0/lists/open_list.example.com/bans + response: + body: {string: !!python/unicode ''} + headers: + content-length: ['0'] + content-type: [application/json; charset=UTF-8] + location: ['http://localhost:9001/3.0/lists/open_list.example.com/bans/test@example.com'] + status: {code: 201, message: Created} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/users/test@example.com + response: + body: {string: !!python/unicode '{"created_on": "2005-08-01T07:49:23", "http_etag": + "\"e760c1db5c21a12c6e8bf64b42d61f579417f2d9\"", "is_server_owner": false, + "password": "$6$rounds=604230$3TJsGBKJqausTP/q$Z/Q16Iso7lY2FPuU/csWFng7Sw7fJIKCnDCySHSPvAy.Klq8Lz8W2ZZNT.WLNgpvnshGlT0yH1pBDgBhdViRv0", + "self_link": "http://localhost:9001/3.0/users/15", "user_id": 15}'} + headers: + content-length: ['326'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/users/15/addresses + response: + body: {string: !!python/unicode '{"entries": [{"email": "fritz@example.org", "http_etag": + "\"a9370f52a26a16b0ebe81930a718a7fc38e2862c\"", "original_email": "fritz@example.org", + "registered_on": "2005-08-01T07:49:23", "self_link": "http://localhost:9001/3.0/addresses/fritz@example.org", + "user": "http://localhost:9001/3.0/users/15", "verified_on": "2005-08-01T07:49:23"}, + {"email": "test@example.com", "http_etag": "\"1e53e43ce1505c75a5b2b206b6a12b7cc4260bfe\"", + "original_email": "test@example.com", "registered_on": "2005-08-01T07:49:23", + "self_link": "http://localhost:9001/3.0/addresses/test@example.com", "user": + "http://localhost:9001/3.0/users/15", "verified_on": "2005-08-01T07:49:23"}], + "http_etag": "\"b61b5c8675801f918c17a54afbe34d98eb45a9cb\"", "start": 0, "total_size": + 2}'} + headers: + content-length: ['752'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list.example.com + response: + body: {string: !!python/unicode '{"display_name": "Open_list", "fqdn_listname": + "open_list@example.com", "http_etag": "\"6726e101e1dd1de6043eee72f741d4c2479f4735\"", + "list_id": "open_list.example.com", "list_name": "open_list", "mail_host": + "example.com", "member_count": 0, "self_link": "http://localhost:9001/3.0/lists/open_list.example.com", + "volume": 1}'} + headers: + content-length: ['324'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list.example.com/roster/owner + response: + body: {string: !!python/unicode '{"http_etag": "\"32223434a0f3af4cdc4673d1fbc5bac1f6d98fd3\"", + "start": 0, "total_size": 0}'} + headers: + content-length: ['90'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list.example.com/roster/moderator + response: + body: {string: !!python/unicode '{"http_etag": "\"32223434a0f3af4cdc4673d1fbc5bac1f6d98fd3\"", + "start": 0, "total_size": 0}'} + headers: + content-length: ['90'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: display_name=None&list_id=open_list.example.com&pre_confirmed=True&pre_verified=True&subscriber=test%40example.com + headers: + accept-encoding: ['gzip, deflate'] + !!python/unicode 'content-type': [!!python/unicode 'application/x-www-form-urlencoded'] + method: !!python/unicode 'POST' + uri: http://localhost:9001/3.0/members + response: + body: {string: !!python/unicode 'Membership is banned'} + headers: + content-length: ['20'] + content-type: [application/json; charset=UTF-8] + status: {code: 400, message: Bad Request} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list@example.com/roster/member + response: + body: {string: !!python/unicode '{"http_etag": "\"32223434a0f3af4cdc4673d1fbc5bac1f6d98fd3\"", + "start": 0, "total_size": 0}'} + headers: + content-length: ['90'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list@example.com/requests + response: + body: {string: !!python/unicode '{"http_etag": "\"32223434a0f3af4cdc4673d1fbc5bac1f6d98fd3\"", + "start": 0, "total_size": 0}'} + headers: + content-length: ['90'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/users/test@example.com + response: + body: {string: !!python/unicode '{"created_on": "2005-08-01T07:49:23", "http_etag": + "\"e760c1db5c21a12c6e8bf64b42d61f579417f2d9\"", "is_server_owner": false, + "password": "$6$rounds=604230$3TJsGBKJqausTP/q$Z/Q16Iso7lY2FPuU/csWFng7Sw7fJIKCnDCySHSPvAy.Klq8Lz8W2ZZNT.WLNgpvnshGlT0yH1pBDgBhdViRv0", + "self_link": "http://localhost:9001/3.0/users/15", "user_id": 15}'} + headers: + content-length: ['326'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/users/15/addresses + response: + body: {string: !!python/unicode '{"entries": [{"email": "fritz@example.org", "http_etag": + "\"a9370f52a26a16b0ebe81930a718a7fc38e2862c\"", "original_email": "fritz@example.org", + "registered_on": "2005-08-01T07:49:23", "self_link": "http://localhost:9001/3.0/addresses/fritz@example.org", + "user": "http://localhost:9001/3.0/users/15", "verified_on": "2005-08-01T07:49:23"}, + {"email": "test@example.com", "http_etag": "\"1e53e43ce1505c75a5b2b206b6a12b7cc4260bfe\"", + "original_email": "test@example.com", "registered_on": "2005-08-01T07:49:23", + "self_link": "http://localhost:9001/3.0/addresses/test@example.com", "user": + "http://localhost:9001/3.0/users/15", "verified_on": "2005-08-01T07:49:23"}], + "http_etag": "\"b61b5c8675801f918c17a54afbe34d98eb45a9cb\"", "start": 0, "total_size": + 2}'} + headers: + content-length: ['752'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list.example.com + response: + body: {string: !!python/unicode '{"display_name": "Open_list", "fqdn_listname": + "open_list@example.com", "http_etag": "\"6726e101e1dd1de6043eee72f741d4c2479f4735\"", + "list_id": "open_list.example.com", "list_name": "open_list", "mail_host": + "example.com", "member_count": 0, "self_link": "http://localhost:9001/3.0/lists/open_list.example.com", + "volume": 1}'} + headers: + content-length: ['324'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list.example.com/roster/owner + response: + body: {string: !!python/unicode '{"http_etag": "\"32223434a0f3af4cdc4673d1fbc5bac1f6d98fd3\"", + "start": 0, "total_size": 0}'} + headers: + content-length: ['90'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list.example.com/roster/moderator + response: + body: {string: !!python/unicode '{"http_etag": "\"32223434a0f3af4cdc4673d1fbc5bac1f6d98fd3\"", + "start": 0, "total_size": 0}'} + headers: + content-length: ['90'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list.example.com/member/test@example.com + response: + body: {string: !!python/unicode '{}'} + headers: + content-length: ['2'] + content-type: [application/json; charset=UTF-8] + vary: [Accept] + status: {code: 404, message: Not Found} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list.example.com/member/fritz@example.org + response: + body: {string: !!python/unicode '{}'} + headers: + content-length: ['2'] + content-type: [application/json; charset=UTF-8] + vary: [Accept] + status: {code: 404, message: Not Found} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list@example.com/config + response: + body: {string: !!python/unicode '{"acceptable_aliases": [], "admin_immed_notify": + true, "admin_notify_mchanges": false, "administrivia": true, "advertised": + true, "allow_list_posts": true, "anonymous_list": false, "archive_policy": + "public", "autorespond_owner": "none", "autorespond_postings": "none", "autorespond_requests": + "none", "autoresponse_grace_period": "90d", "autoresponse_owner_text": "", + "autoresponse_postings_text": "", "autoresponse_request_text": "", "bounces_address": + "open_list-bounces@example.com", "collapse_alternatives": true, "convert_html_to_plaintext": + false, "created_at": "2005-08-01T07:49:23", "default_member_action": "defer", + "default_nonmember_action": "hold", "description": "", "digest_last_sent_at": + null, "digest_send_periodic": true, "digest_size_threshold": 30.0, "digest_volume_frequency": + "monthly", "digests_enabled": true, "display_name": "Open_list", "filter_content": + false, "first_strip_reply_to": false, "fqdn_listname": "open_list@example.com", + "goodbye_message_uri": "", "http_etag": "\"f5522fcc64a0848ce01fcad0b5f9ee42b9c02bd3\"", + "include_rfc2369_headers": true, "join_address": "open_list-join@example.com", + "last_post_at": null, "leave_address": "open_list-leave@example.com", "list_name": + "open_list", "mail_host": "example.com", "next_digest_number": 1, "no_reply_address": + "noreply@example.com", "owner_address": "open_list-owner@example.com", "post_id": + 1, "posting_address": "open_list@example.com", "posting_pipeline": "default-posting-pipeline", + "reply_goes_to_list": "no_munging", "reply_to_address": "", "request_address": + "open_list-request@example.com", "scheme": "http", "send_welcome_message": + true, "subject_prefix": "[Open_list] ", "subscription_policy": "open", "volume": + 1, "web_host": "example.com", "welcome_message_uri": "mailman:///welcome.txt"}'} + headers: + content-length: ['1787'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/open_list@example.com/requests + response: + body: {string: !!python/unicode '{"http_etag": "\"32223434a0f3af4cdc4673d1fbc5bac1f6d98fd3\"", + "start": 0, "total_size": 0}'} + headers: + content-length: ['90'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/lists/moderate_subs@example.com/requests + response: + body: {string: !!python/unicode '{"http_etag": "\"32223434a0f3af4cdc4673d1fbc5bac1f6d98fd3\"", + "start": 0, "total_size": 0}'} + headers: + content-length: ['90'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/domains + response: + body: {string: !!python/unicode '{"entries": [{"base_url": "http://example.com", + "description": null, "http_etag": "\"e736411818ff1815ca83575e0958c38c5188f0a4\"", + "mail_host": "example.com", "self_link": "http://localhost:9001/3.0/domains/example.com", + "url_host": "example.com"}], "http_etag": "\"c385b155f8da284bf78dbe075e20f58a30c893ab\"", + "start": 0, "total_size": 1}'} + headers: + content-length: ['338'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'DELETE' + uri: http://localhost:9001/3.0/domains/example.com + response: + body: {string: !!python/unicode ''} + headers: + content-length: ['0'] + status: {code: 204, message: No Content} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'GET' + uri: http://localhost:9001/3.0/users + response: + body: {string: !!python/unicode '{"entries": [{"created_on": "2005-08-01T07:49:23", + "http_etag": "\"e760c1db5c21a12c6e8bf64b42d61f579417f2d9\"", "is_server_owner": + false, "password": "$6$rounds=604230$3TJsGBKJqausTP/q$Z/Q16Iso7lY2FPuU/csWFng7Sw7fJIKCnDCySHSPvAy.Klq8Lz8W2ZZNT.WLNgpvnshGlT0yH1pBDgBhdViRv0", + "self_link": "http://localhost:9001/3.0/users/15", "user_id": 15}], "http_etag": + "\"4ac49180421edb87346cc7a2444765f42c2121be\"", "start": 0, "total_size": + 1}'} + headers: + content-length: ['431'] + content-type: [application/json; charset=UTF-8] + status: {code: 200, message: OK} +- request: + body: null + headers: + accept-encoding: ['gzip, deflate'] + method: !!python/unicode 'DELETE' + uri: http://localhost:9001/3.0/users/15 + response: + body: {string: !!python/unicode ''} + headers: + content-length: ['0'] + status: {code: 204, message: No Content} +version: 1 diff --git a/src/postorius/tests/mailman_api_tests/test_subscriptions.py b/src/postorius/tests/mailman_api_tests/test_subscriptions.py index 71738be..424b8ee 100644 --- a/src/postorius/tests/mailman_api_tests/test_subscriptions.py +++ b/src/postorius/tests/mailman_api_tests/test_subscriptions.py @@ -100,6 +100,20 @@ args=('open_list.example.com', ))) self.assertHasErrorMessage(response) + def test_banned_address(self): + # Impossible to register with a banned address + self.client.login(username='testuser', password='pwd') + self.open_list.bans.add('test@example.com') + response = self.client.post( + reverse('list_subscribe', args=('open_list.example.com', )), + {'email': 'test@example.com'}) + self.assertEqual(len(self.open_list.members), 0) + self.assertEqual(len(self.open_list.requests), 0) + self.assertRedirects( + response, reverse('list_summary', + args=('open_list.example.com', ))) + self.assertHasErrorMessage(response) + def test_subscribe_mod(self): # The subscription is held for approval. self.client.login(username='testuser', password='pwd')