1
0
mirror of https://github.com/quay/quay.git synced 2026-01-26 06:21:37 +03:00
Files
quay/util/test/test_useremails.py
Kenny Lee Sin Cheong 5f63b3a7bb chore: drop deprecated tables and remove unused code (PROJQUAY-522) (#2089)
* chore: drop deprecated tables and remove unused code

* isort imports

* migration: check for table existence before drop
2023-08-25 12:17:24 -04:00

112 lines
2.7 KiB
Python

from test.fixtures import *
import mock
import pytest
from util.useremails import render_email, send_recovery_email
def test_render_email():
params = {
"username": "someusername",
"new_email": "new@example.com",
}
html, plain = render_email(
"Test App", "test.quay", "foo@example.com", "Hello There!", "emailchanged", params
)
assert "https://quay.io/contact/" in html
assert "https://quay.io/contact/" in plain
@pytest.mark.parametrize(
"template_name, params",
[
(
"passwordchanged",
{
"username": "someusername",
},
),
(
"emailchanged",
{
"username": "someusername",
"new_email": "new@example.com",
},
),
(
"changeemail",
{
"username": "someusername",
"token": "sometoken",
},
),
(
"confirmemail",
{
"username": "someusername",
"token": "sometoken",
},
),
(
"repoauthorizeemail",
{
"namespace": "someusername",
"repository": "somerepo",
"token": "sometoken",
},
),
(
"orgrecovery",
{
"organization": "someusername",
"admin_usernames": ["foo", "bar", "baz"],
},
),
(
"recovery",
{
"email": "foo@example.com",
"token": "sometoken",
},
),
(
"paymentfailure",
{
"username": "someusername",
},
),
(
"teaminvite",
{
"inviter": "someusername",
"token": "sometoken",
"organization": "someorg",
"teamname": "someteam",
},
),
],
)
def test_emails(template_name, params, initialized_db):
render_email("Test App", "test.quay", "foo@example.com", "Hello There!", template_name, params)
@mock.patch("util.useremails.send_email")
def test_send_recovery_email(mock_send_email, initialized_db):
email = "quay_user@example.com"
token = "fake_token"
send_recovery_email(email, token)
# Expected call arguments
subject = "Account recovery"
template_file = "recovery"
parameters = {"email": email, "token": token}
action = mock.ANY # TODO: assert GmailAction.view() is called
mock_send_email.assert_called_once_with(
email, subject, template_file, parameters, action=action
)