12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- from __future__ import absolute_import
- import os.path
- from six.moves.urllib.parse import urlencode
- from os.path import join, dirname
- from sentry.testutils import AcceptanceTestCase
- EMAILS = (
- ("/debug/mail/assigned/", "assigned"),
- ("/debug/mail/assigned/self/", "assigned self"),
- ("/debug/mail/note/", "note"),
- ("/debug/mail/regression/", "regression"),
- ("/debug/mail/regression/release/", "regression with version"),
- ("/debug/mail/new-release/", "release"),
- ("/debug/mail/resolved/", "resolved"),
- ("/debug/mail/resolved-in-release/", "resolved in release"),
- ("/debug/mail/resolved-in-release/upcoming/", "resolved in release upcoming"),
- ("/debug/mail/unassigned/", "unassigned"),
- ("/debug/mail/unable-to-fetch-commits/", "unable to fetch commits"),
- ("/debug/mail/unable-to-delete-repo/", "unable to delete repo"),
- ("/debug/mail/alert/", "alert"),
- ("/debug/mail/digest/", "digest"),
- ("/debug/mail/invalid-identity/", "invalid identity"),
- ("/debug/mail/invitation/", "invitation"),
- ("/debug/mail/report/", "report"),
- ("/debug/mail/mfa-added/", "mfa added"),
- ("/debug/mail/mfa-removed/", "mfa removed"),
- ("/debug/mail/recovery-codes-regenerated/", "recovery codes regenerated"),
- ("/debug/mail/password-changed/", "password changed"),
- ("/debug/mail/sso-linked", "sso linked"),
- ("/debug/mail/sso-unlinked", "sso unlinked"),
- ("/debug/mail/sso-unlinked/no-password", "sso unlinked without password"),
- )
- def read_txt_email_fixture(name):
- # "sso unlinked without password"
- # => "sso_unlinked_without_password.txt"
- filename = name.replace(" ", "_") + ".txt"
- path = join(dirname(__file__), os.pardir, "fixtures", "emails", filename)
- fixture = None
- with open(path, "r") as f:
- fixture = f.read()
- return fixture
- class EmailTestCase(AcceptanceTestCase):
- def setUp(self):
- super(EmailTestCase, self).setUp()
- self.user = self.create_user("foo@example.com")
- self.login_as(self.user)
- def build_url(self, path, format="html"):
- return u"{}?{}".format(path, urlencode({"format": format, "seed": "123"}))
- def test_emails(self):
- for url, name in EMAILS:
- # HTML output is captured as a snapshot
- self.browser.get(self.build_url(url, "html"))
- self.browser.wait_until("#preview")
- self.browser.snapshot(u"{} email html".format(name))
- # Text output is asserted against static fixture files
- self.browser.get(self.build_url(url, "txt"))
- self.browser.wait_until("#preview")
- elem = self.browser.find_element_by_css_selector("#preview pre")
- text_src = elem.get_attribute("innerHTML")
- fixture_src = read_txt_email_fixture(name)
- assert fixture_src == text_src
|