Change the User Settings ======================== Now let's check out the user settings. Start by accessing the user settings page. The user settings also requires the user to be logged in. We'll call the page and log in as the Katie. >>> response = c.post('/user_settings/katie%40example.com/', ... {"addr": "katie@example.com", ... "psw": "katie"}) Let's check that we ended up on the right page. >>> print "User Settings" in response.content True The settings page contains two tabs - one for the general user settings valid for all lists and a specific membership page with links to all lists the user is subscribed to. On the latter the user can change the settings for each list. We'll start by changing some of the user settings. We'll set the real name to Katie and the default email address to 'jack@example.com'. >>> response = c.post('/user_settings/katie%40example.com/', ... {'real_name': 'Katie', ... 'address': u'jack@example.com'}) If we now check the content of the page that was loaded, we should get a confirmation that everything went well. >>> print "The user settings have been updated." in response.content True Change the Memebership Settings =============================== Now let's go to the membership settings page. Once we go there we should get a list of all the available lists. >>> response = c.get('/membership_settings/katie%40example.com/') Check that we came to the right place... >>> print "Membership Settings" in response.content True ...and select the list 'test-one@example.com'. >>> response = c.get('/membership_settings/katie%40example.com/?list=test-one@example.com') Lets make sure we got to the right page. >>> print "Membership Settings for test-one@example.com" in response.content True We want to make sure we don't hide our address when posting to the list, so we change this option and save the form. >>> response = c.post('/membership_settings/katie%40example.com/?list=test-one@example.com', ... {"hide_address": False}) Now we just need to make sure the saving went well. We do this by checking the content of the page that was loaded. >>> print "The membership settings have been updated." in response.content True We feel done with the user and memebership settings so let's log out before we continue. >>> response = c.get('/lists/logout/',) Again, if the request was successful we should end up on the list info page. Make sure that we got redirected there. >>> print "All mailing lists" in response.content True View the List Info Page ======================= Apart from just viewing a list of all the available lists we can view the information about one particular list on a list info page. On this page we can also subscribe or unsubscribe an email address to the list. Let's try to subscribe to the list in the "normal" way (i.e. not using mass subscription). First we go to the page. >>> response = c.get('/lists/new_list%40mail.example.com/',) Then we check that everything went well. >>> response.status_code 200 Subscribe a User ================ And finally we try to subscribe a user named 'Meg'. >>> response = c.post('/lists/new_list%40mail.example.com/', ... {"email": "meg@example.com", ... "real_name": "Meg", ... "name": "subscribe", ... "listname": "new_list@example.com"}) This page contains a redirect so we check the status code for this. >>> response.status_code 302 Then we check that the redirect gives the correct status code. >>> response = c.get("http://testserver/lists/") >>> response.status_code 200 Unsubscribe a User ================== We'll now try unsubscribing the address for Meg. >>> response = c.post('/lists/new_list%40mail.example.com/', ... {"email": "meg@example.com", ... "real_name": "Meg", ... "name": "unsubscribe", ... "listname": "new_list@example.com"}) If everything went well, we'll get a positive response saying so. >>> print "You have now been unsubscribed from new_list@example.com." in \ response.content True Delete the List =============== Finally, let's delete the list. We start by checking that the list is really there (for reference). >>> response = c.get('/lists/') >>> print "new_list@example.com" in response.content True Then we delete the list... >>> response = c.post('/delete_list/new_list%40mail.example.com/',) ...and check that it's been deleted. >>> print "new_list@example.com" in response.content False So far this is what you can do in the UI. More tests can be added here later. """