Improve existing tests to check for alert notifications

This commit is contained in:
Baptiste Jonglez 2020-05-18 13:27:13 +02:00
parent 9fa00cb201
commit 3d7e6b212e

View file

@ -142,10 +142,15 @@ class BudgetTestCase(IhatemoneyTestCase):
self.login("raclette") self.login("raclette")
self.post_project("raclette") self.post_project("raclette")
self.client.post( resp = self.client.post(
"/raclette/invite", data={"emails": "zorglub@notmyidea.org"} "/raclette/invite",
data={"emails": "zorglub@notmyidea.org"},
follow_redirects=True,
) )
# success notification
self.assertIn("Your invitations have been sent", resp.data.decode("utf-8"))
self.assertEqual(len(outbox), 2) self.assertEqual(len(outbox), 2)
self.assertEqual(outbox[0].recipients, ["raclette@notmyidea.org"]) self.assertEqual(outbox[0].recipients, ["raclette@notmyidea.org"])
self.assertEqual(outbox[1].recipients, ["zorglub@notmyidea.org"]) self.assertEqual(outbox[1].recipients, ["zorglub@notmyidea.org"])
@ -226,7 +231,15 @@ class BudgetTestCase(IhatemoneyTestCase):
self.create_project("raclette") self.create_project("raclette")
# Get password resetting link from mail # Get password resetting link from mail
with self.app.mail.record_messages() as outbox: with self.app.mail.record_messages() as outbox:
self.client.post("/password-reminder", data={"id": "raclette"}) resp = self.client.post(
"/password-reminder", data={"id": "raclette"}, follow_redirects=True
)
# Check that we are redirected to the right page
self.assertIn(
"A link to reset your password has been sent to you",
resp.data.decode("utf-8"),
)
# Check that an email was sent
self.assertEqual(len(outbox), 1) self.assertEqual(len(outbox), 1)
url_start = outbox[0].body.find("You can reset it here: ") + 23 url_start = outbox[0].body.find("You can reset it here: ") + 23
url_end = outbox[0].body.find(".\n", url_start) url_end = outbox[0].body.find(".\n", url_start)
@ -251,17 +264,26 @@ class BudgetTestCase(IhatemoneyTestCase):
def test_project_creation(self): def test_project_creation(self):
with self.app.test_client() as c: with self.app.test_client() as c:
# add a valid project with self.app.mail.record_messages() as outbox:
c.post( # add a valid project
"/create", resp = c.post(
data={ "/create",
"name": "The fabulous raclette party", data={
"id": "raclette", "name": "The fabulous raclette party",
"password": "party", "id": "raclette",
"contact_email": "raclette@notmyidea.org", "password": "party",
"default_currency": "USD", "contact_email": "raclette@notmyidea.org",
}, "default_currency": "USD",
) },
follow_redirects=True,
)
# an email is sent to the owner with a reminder of the password
self.assertEqual(len(outbox), 1)
self.assertEqual(outbox[0].recipients, ["raclette@notmyidea.org"])
self.assertIn(
"A reminder email has just been sent to you",
resp.data.decode("utf-8"),
)
# session is updated # session is updated
self.assertTrue(session["raclette"]) self.assertTrue(session["raclette"])