From 2497e3e1a99ad4722672a0421e29dce2f6b39087 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Apr 20 2015 13:37:06 +0000 Subject: Add unit-tests for the confirm_email endpoint --- diff --git a/tests/test_progit_flask_ui_app.py b/tests/test_progit_flask_ui_app.py index 1de87d0..d7b2d28 100644 --- a/tests/test_progit_flask_ui_app.py +++ b/tests/test_progit_flask_ui_app.py @@ -538,6 +538,56 @@ class PagureFlaskApptests(tests.Modeltests): output = self.app.post('/settings/email/default', data=data) self.assertEqual(output.status_code, 302) + @patch('pagure.ui.app.admin_session_timedout') + def test_confirm_email(self, ast): + """ Test the confirm_email endpoint. """ + output = self.app.get('/settings/email/confirm/foobar') + self.assertEqual(output.status_code, 302) + + ast.return_value = False + + # Add a pending email to pingou + userobj = pagure.lib.search_user(self.session, username='pingou') + + self.assertEqual(len(userobj.emails), 2) + + email_pend = pagure.lib.model.UserEmailPending( + user_id=userobj.id, + email='foo@fp.o', + token='abcdef', + ) + self.session.add(email_pend) + self.session.commit() + + user = tests.FakeUser() + user.username = 'pingou' + with tests.user_set(pagure.APP, user): + # Wrong token + output = self.app.get( + '/settings/email/confirm/foobar', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + "

pingou's settings

", output.data) + self.assertIn( + '
  • No email associated with this token.
  • ', + output.data) + + # Confirm email + output = self.app.get( + '/settings/email/confirm/abcdef', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + "

    pingou's settings

    ", output.data) + self.assertIn( + '
  • Email validated
  • ', output.data) + + userobj = pagure.lib.search_user(self.session, username='pingou') + self.assertEqual(len(userobj.emails), 3) + + ast.return_value = True + output = self.app.get('/settings/email/confirm/foobar') + self.assertEqual(output.status_code, 302) + if __name__ == '__main__': SUITE = unittest.TestLoader().loadTestsFromTestCase(PagureFlaskApptests)