mirror of
https://github.com/simple-login/app.git
synced 2024-11-10 17:35:27 +08:00
59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
from uuid import UUID
|
|
|
|
import arrow
|
|
import pytest
|
|
|
|
from app.config import EMAIL_DOMAIN, MAX_NB_EMAIL_FREE_PLAN
|
|
from app.extensions import db
|
|
from app.models import generate_email, User, GenEmail
|
|
|
|
|
|
def test_generate_email(flask_client):
|
|
email = generate_email()
|
|
assert email.endswith("@" + EMAIL_DOMAIN)
|
|
|
|
with pytest.raises(ValueError):
|
|
UUID(email.split("@")[0], version=4)
|
|
|
|
email_uuid = generate_email(scheme=2)
|
|
assert UUID(email_uuid.split("@")[0], version=4)
|
|
|
|
|
|
def test_profile_picture_url(flask_client):
|
|
user = User.create(
|
|
email="a@b.c", password="password", name="Test User", activated=True
|
|
)
|
|
db.session.commit()
|
|
|
|
assert user.profile_picture_url() == "http://sl.test/static/default-avatar.png"
|
|
|
|
|
|
def test_suggested_emails_for_user_who_cannot_create_new_email(flask_client):
|
|
user = User.create(
|
|
email="a@b.c", password="password", name="Test User", activated=True
|
|
)
|
|
db.session.commit()
|
|
|
|
# make sure user runs out of quota to create new email
|
|
for i in range(MAX_NB_EMAIL_FREE_PLAN):
|
|
GenEmail.create_new(user_id=user.id, prefix="test")
|
|
db.session.commit()
|
|
|
|
suggested_email, other_emails = user.suggested_emails(website_name="test")
|
|
|
|
# the suggested email is chosen from existing GenEmail
|
|
assert GenEmail.get_by(email=suggested_email)
|
|
|
|
# all other emails are generated emails
|
|
for email in other_emails:
|
|
assert GenEmail.get_by(email=email)
|
|
|
|
|
|
def test_gen_email_create_random(flask_client):
|
|
user = User.create(
|
|
email="a@b.c", password="password", name="Test User", activated=True
|
|
)
|
|
db.session.commit()
|
|
|
|
alias = GenEmail.create_new_random(user.id)
|
|
assert alias.email.endswith(EMAIL_DOMAIN)
|