mirror of
https://github.com/quay/quay.git
synced 2026-01-26 06:21:37 +03:00
* chore: drop deprecated tables and remove unused code * isort imports * migration: check for table existence before drop
112 lines
2.7 KiB
Python
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
|
|
)
|