예제 #1
0
def test_add_alias_multiple_mailboxes(flask_client):
    user = login(flask_client)
    Session.commit()

    alias_suffix = AliasSuffix(
        is_custom=False,
        suffix=f".12345@{EMAIL_DOMAIN}",
        is_premium=False,
        domain=EMAIL_DOMAIN,
    )
    signed_alias_suffix = signer.sign(alias_suffix.serialize()).decode()

    # create with a multiple mailboxes
    mb1 = Mailbox.create(user_id=user.id,
                         email="*****@*****.**",
                         verified=True)
    Session.commit()

    r = flask_client.post(
        url_for("dashboard.custom_alias"),
        data={
            "prefix": "prefix",
            "signed-alias-suffix": signed_alias_suffix,
            "mailboxes": [user.default_mailbox_id, mb1.id],
        },
        follow_redirects=True,
    )
    assert r.status_code == 200
    assert f"Alias prefix.12345@{EMAIL_DOMAIN} has been created" in str(r.data)

    alias = Alias.order_by(Alias.created_at.desc()).first()
    assert alias._mailboxes
예제 #2
0
def test_get_alias_infos_pinned_alias(flask_client):
    """Different scenarios with pinned alias"""
    user = User.create(
        email="[email protected]",
        password="******",
        name="Test User",
        activated=True,
        commit=True,
    )

    # to have 3 pages: 2*PAGE_LIMIT + the alias automatically created for a new account
    for _ in range(2 * PAGE_LIMIT):
        Alias.create_new_random(user)

    first_alias = Alias.order_by(Alias.id).first()

    # should return PAGE_LIMIT alias
    alias_infos = get_alias_infos_with_pagination_v3(user)
    assert len(alias_infos) == PAGE_LIMIT
    # make sure first_alias is not returned as the default order is alias creation date
    assert first_alias not in [ai.alias for ai in alias_infos]

    # pin the first alias
    first_alias.pinned = True
    Session.commit()

    alias_infos = get_alias_infos_with_pagination_v3(user)
    # now first_alias is the first result
    assert first_alias == alias_infos[0].alias
    # and the page size is still the same
    assert len(alias_infos) == PAGE_LIMIT

    # pinned alias isn't included in the search
    alias_infos = get_alias_infos_with_pagination_v3(user, query="no match")
    assert len(alias_infos) == 0
예제 #3
0
def test_add_alias_success(flask_client):
    user = login(flask_client)

    alias_suffix = AliasSuffix(
        is_custom=False,
        suffix=f".12345@{EMAIL_DOMAIN}",
        is_premium=False,
        domain=EMAIL_DOMAIN,
    )
    signed_alias_suffix = signer.sign(alias_suffix.serialize()).decode()

    # create with a single mailbox
    r = flask_client.post(
        url_for("dashboard.custom_alias"),
        data={
            "prefix": "prefix",
            "signed-alias-suffix": signed_alias_suffix,
            "mailboxes": [user.default_mailbox_id],
        },
        follow_redirects=True,
    )
    assert r.status_code == 200
    assert f"Alias prefix.12345@{EMAIL_DOMAIN} has been created" in str(r.data)

    alias = Alias.order_by(Alias.created_at.desc()).first()
    assert not alias._mailboxes