def test_smtp_starttls(user: User): # This test does two things: test starttls path and test # path where we have a backup email. with db.begin(): user.ResetKey = "12345678901234567890123456789012" user.BackupEmail = "*****@*****.**" smtp = FakeSMTP() get = "aurweb.config.get" getboolean = "aurweb.config.getboolean" with mock.patch(get, side_effect=mock_smtp_starttls_config(str)): with mock.patch(getboolean, side_effect=mock_smtp_starttls_config(bool)): with mock.patch("smtplib.SMTP", side_effect=smtp): notif = notify.WelcomeNotification(user.ID) notif.send() assert smtp.starttls_enabled assert smtp.user assert smtp.passwd assert len(smtp.emails) == 2 to = smtp.emails[0][1] assert to == [user.Email] to = smtp.emails[1][1] assert to == [user.BackupEmail]
def test_smtp(user: User): with db.begin(): user.ResetKey = "12345678901234567890123456789012" smtp = FakeSMTP() get = "aurweb.config.get" getboolean = "aurweb.config.getboolean" with mock.patch(get, side_effect=mock_smtp_config(str)): with mock.patch(getboolean, side_effect=mock_smtp_config(bool)): with mock.patch("smtplib.SMTP", side_effect=smtp): config.rehash() notif = notify.WelcomeNotification(user.ID) notif.send() config.rehash() assert len(smtp.emails) == 1
def test_welcome(user: User): with db.begin(): user.ResetKey = "12345678901234567890123456789012" notif = notify.WelcomeNotification(user.ID) notif.send() assert Email.count() == 1 email = Email(1).parse() expected = "Welcome to the Arch User Repository" assert email.headers.get("Subject") == expected expected = f"""\ Welcome to the Arch User Repository! In order to set an initial password for your new account, please click the link [1] below. If the link does not work, try copying and pasting it into your browser. [1] {aur_location}/passreset/?resetkey=12345678901234567890123456789012\ """ assert email.body == expected
def test_reset(user: User): with db.begin(): user.ResetKey = "12345678901234567890123456789012" notif = notify.ResetKeyNotification(user.ID) notif.send() assert Email.count() == 1 email = Email(1).parse() expected = "AUR Password Reset" assert email.headers.get("Subject") == expected expected = f"""\ A password reset request was submitted for the account test associated with your email address. If you wish to reset your password follow the link [1] below, otherwise ignore this message and nothing will happen. [1] {aur_location}/passreset/?resetkey=12345678901234567890123456789012\ """ assert email.body == expected