This commit is contained in:
2022-12-30 16:23:27 +00:00
parent 02776e8478
commit 20da343c54
1304 changed files with 870224 additions and 0 deletions

View File

View File

@ -0,0 +1,25 @@
from app.models import Partner, PartnerApiToken
from app.utils import random_string
def test_generate_partner_api_token(flask_client):
partner = Partner.create(
name=random_string(10),
contact_email="{s}@{s}.com".format(s=random_string(10)),
commit=True,
)
partner_api_token, token = PartnerApiToken.generate(partner.id, None)
assert token is not None
assert len(token) > 0
assert partner_api_token.partner_id == partner.id
assert partner_api_token.expiration_time is None
hmaced = PartnerApiToken.hmac_token(token)
assert hmaced == partner_api_token.token
retrieved_partner = Partner.find_by_token(token)
assert retrieved_partner is not None
assert retrieved_partner.id == partner.id

View File

@ -0,0 +1,39 @@
from arrow import Arrow
from app.models import Partner, PartnerUser, PartnerSubscription
from app.utils import random_string
from tests.utils import create_new_user, random_email
def test_generate_partner_subscription(flask_client):
external_user_id = random_string()
partner = Partner.create(
name=random_string(10),
contact_email=random_email(),
commit=True,
)
user = create_new_user()
partner_user = PartnerUser.create(
user_id=user.id,
partner_id=partner.id,
partner_email=random_email(),
external_user_id=external_user_id,
commit=True,
)
subs = PartnerSubscription.create(
partner_user_id=partner_user.id,
end_at=Arrow.utcnow().shift(hours=1),
commit=True,
)
retrieved_subscription = PartnerSubscription.find_by_user_id(user.id)
assert retrieved_subscription is not None
assert retrieved_subscription.id == subs.id
assert user.lifetime_or_active_subscription() is True
def test_partner_subscription_for_not_partner_subscription_user(flask_client):
unexistant_subscription = PartnerSubscription.find_by_user_id(999999)
assert unexistant_subscription is None

View File

@ -0,0 +1,31 @@
from app import config
from app.db import Session
from app.models import User, Job
from tests.utils import create_new_user, random_email
def test_available_sl_domains(flask_client):
user = create_new_user()
assert set(user.available_sl_domains()) == {"d1.test", "d2.test", "sl.local"}
def test_create_from_partner(flask_client):
user = User.create(email=random_email(), from_partner=True)
assert User.FLAG_CREATED_FROM_PARTNER == (
user.flags & User.FLAG_CREATED_FROM_PARTNER
)
assert user.notification is False
assert user.trial_end is None
job = Session.query(Job).order_by(Job.id.desc()).first()
assert job is not None
assert job.name == config.JOB_SEND_PROTON_WELCOME_1
assert job.payload.get("user_id") == user.id
def test_user_created_by_partner(flask_client):
user_from_partner = User.create(email=random_email(), from_partner=True)
assert user_from_partner.created_by_partner is True
regular_user = User.create(email=random_email())
assert regular_user.created_by_partner is False