Exemplo n.º 1
0
def test_create_random_alias_success(flask_client):
    login(flask_client)
    assert Alias.count() == 1

    r = flask_client.post(
        url_for("dashboard.index"),
        data={"form-name": "create-random-email"},
        follow_redirects=True,
    )
    assert r.status_code == 200
    assert Alias.count() == 2
Exemplo n.º 2
0
def compute_metric2() -> Metric2:
    now = arrow.now()
    _24h_ago = now.shift(days=-1)

    nb_referred_user_paid = 0
    for user in User.filter(User.referral_id.isnot(None)):
        if user.is_paid():
            nb_referred_user_paid += 1

    return Metric2.create(
        date=now,
        # user stats
        nb_user=User.count(),
        nb_activated_user=User.filter_by(activated=True).count(),
        # subscription stats
        nb_premium=Subscription.filter(
            Subscription.cancelled.is_(False)).count(),
        nb_cancelled_premium=Subscription.filter(
            Subscription.cancelled.is_(True)).count(),
        # todo: filter by expires_date > now
        nb_apple_premium=AppleSubscription.count(),
        nb_manual_premium=ManualSubscription.filter(
            ManualSubscription.end_at > now,
            ManualSubscription.is_giveaway.is_(False),
        ).count(),
        nb_coinbase_premium=CoinbaseSubscription.filter(
            CoinbaseSubscription.end_at > now).count(),
        # referral stats
        nb_referred_user=User.filter(User.referral_id.isnot(None)).count(),
        nb_referred_user_paid=nb_referred_user_paid,
        nb_alias=Alias.count(),
        # email log stats
        nb_forward_last_24h=EmailLog.filter(
            EmailLog.created_at > _24h_ago).filter_by(bounced=False,
                                                      is_spam=False,
                                                      is_reply=False,
                                                      blocked=False).count(),
        nb_bounced_last_24h=EmailLog.filter(
            EmailLog.created_at > _24h_ago).filter_by(bounced=True).count(),
        nb_total_bounced_last_24h=Bounce.filter(
            Bounce.created_at > _24h_ago).count(),
        nb_reply_last_24h=EmailLog.filter(
            EmailLog.created_at > _24h_ago).filter_by(is_reply=True).count(),
        nb_block_last_24h=EmailLog.filter(
            EmailLog.created_at > _24h_ago).filter_by(blocked=True).count(),
        # other stats
        nb_verified_custom_domain=CustomDomain.filter_by(
            verified=True).count(),
        nb_subdomain=CustomDomain.filter_by(is_sl_subdomain=True).count(),
        nb_directory=Directory.count(),
        nb_deleted_directory=DeletedDirectory.count(),
        nb_deleted_subdomain=DeletedSubdomain.count(),
        nb_app=Client.count(),
        commit=True,
    )
Exemplo n.º 3
0
def test_with_custom_domain(flask_client):
    user = login(flask_client)
    CustomDomain.create(
        user_id=user.id, domain="ab.cd", ownership_verified=True, commit=True
    )

    r = flask_client.post(
        url_for("api.new_random_alias", hostname="www.test.com"),
    )

    assert r.status_code == 201
    assert r.json["alias"] == "*****@*****.**"
    assert Alias.count() == 2

    # call the endpoint again, should return the same alias
    r = flask_client.post(
        url_for("api.new_random_alias", hostname="www.test.com"),
    )

    assert r.status_code == 201
    assert r.json["alias"] == "*****@*****.**"
    # no new alias is created
    assert Alias.count() == 2