def test_settings_email_with_invalid_email(users, dummy_request): from aarau.views.console.settings.action import settings_email from aarau.views.console.settings.form import NewEmailForm user = users['oswald'] dummy_request.subdomain = 'console' dummy_request.user = user dummy_request.POST = MultiDict({ 'csrf_token': dummy_request.session.get_csrf_token(), 'new_email': 'invalid', 'submit': '1', }) res = settings_email(dummy_request) assert isinstance(res['form'], NewEmailForm) assert [ # does not contain any change in res '*****@*****.**', '*****@*****.**' ] == [ue.email for ue in res['user_emails']] assert_user_email_forms(res['user_emails'], res['email_forms']) assert {'new_email': ['Invalid email address.']} == res['form'].errors assert dummy_request.session.peek_flash('failure')
def test_settings_email_with_empty_params(users, dummy_request): from aarau.views.console.settings.action import settings_email from aarau.views.console.settings.form import NewEmailForm user = users['oswald'] dummy_request.subdomain = 'console' dummy_request.user = user dummy_request.POST = MultiDict({}) res = settings_email(dummy_request) assert isinstance(res['form'], NewEmailForm) assert user.emails.count() == res['user_emails'].count() assert_user_email_forms(res['user_emails'], res['email_forms']) assert not dummy_request.session.peek_flash()
def test_settings_email_with_valid_email(users, dummy_request): from aarau.views.console.settings.action import settings_email dummy_request.subdomain = 'console' dummy_request.user = users['oswald'] dummy_request.POST = MultiDict({ 'csrf_token': dummy_request.session.get_csrf_token(), 'new_email': '*****@*****.**', 'submit': '1', }) assert 2 == users['oswald'].emails.count() res = settings_email(dummy_request) assert dict != type(res) assert dummy_request.session.peek_flash('success') assert '302 Found' == res.status assert '/settings/email' == res.location
def test_settings_email_with_pending_email(users, dummy_request): from aarau.views.console.settings.action import settings_email user = users['henry'] dummy_request.subdomain = 'console' dummy_request.user = user dummy_request.POST = MultiDict({ 'csrf_token': dummy_request.session.get_csrf_token(), 'new_email': '*****@*****.**', 'submit': '1', }) res = settings_email(dummy_request) assert dict != type(res) assert dummy_request.session.peek_flash('warning') assert '302 Found' == res.status assert '/settings/email' == res.location
def test_settings_email_with_invalid_csrf(users, dummy_request): from aarau.views.console.settings.action import settings_email from aarau.views.console.settings.form import NewEmailForm user = users['oswald'] new_email = '*****@*****.**' dummy_request.subdomain = 'console' dummy_request.user = user dummy_request.POST = MultiDict({ 'csrf_token': 'invalid', 'new_email': new_email, 'submit': '1', }) res = settings_email(dummy_request) assert isinstance(res['form'], NewEmailForm) assert new_email not in [e.email for e in user.emails] assert new_email not in [e.email for e in res['user_emails']] assert user.emails.count() == res['user_emails'].count() assert_user_email_forms(res['user_emails'], res['email_forms']) assert {'csrf_token': ['Invalid CSRF']} == res['form'].errors assert dummy_request.session.peek_flash('failure')