def test_user_b_mail_alt_equal_user_a_mail_primary_with_mail_copy_to_self(
        mail_forward_copy_to_self, delivered):
    print(
        "### user_b's mail_alternative_address is equal to user_a's mail forward address"
    )
    with udm_test.UCSTestUDM() as udm:
        a_user = Bunch()
        a_user.mailPrimaryAddress = random_email()
        a_user.mailHomeServer = FQDN
        a_user.mailForwardAddress = random_email()
        a_user.dn, a_user.username = udm.create_user(
            set={
                "mailHomeServer": a_user.mailHomeServer,
                "mailPrimaryAddress": a_user.mailPrimaryAddress,
                "mailForwardAddress": a_user.mailForwardAddress,
                "mailForwardCopyToSelf": mail_forward_copy_to_self,
            })
        b_user = Bunch()
        b_user.mailPrimaryAddress = random_email()
        b_user.mailHomeServer = FQDN
        b_user.dn, a_user.username = udm.create_user(
            set={
                "mailHomeServer": b_user.mailHomeServer,
                "mailPrimaryAddress": b_user.mailPrimaryAddress,
                "mailAlternativeAddress": a_user.mailPrimaryAddress,
            })
        token = make_token()
        send_mail(recipients=a_user.mailPrimaryAddress,
                  msg=token,
                  debuglevel=DEBUG_LEVEL)
        check_delivery(token, a_user.mailPrimaryAddress, delivered)
        check_delivery(token, b_user.mailPrimaryAddress, True)
def random_mail_user(udm, mail_alternative_address=None):
    if mail_alternative_address is None:
        mail_alternative_address = random_email()
    user = Bunch()
    user.mailPrimaryAddress = random_email()
    user.mailAlternativeAddress = mail_alternative_address
    user.mailHomeServer = FQDN
    user.dn, user.username = udm.create_user(
        set={
            "mailHomeServer": user.mailHomeServer,
            "mailPrimaryAddress": user.mailPrimaryAddress,
            "mailAlternativeAddress": user.mailAlternativeAddress,
        })
    return user
def test_group_mail_in_mailing_list():
    with udm_test.UCSTestUDM() as udm:
        group_members = []
        group_mails = []
        for i in range(2):
            user = random_mail_user(udm=udm)
            group_members.append(user.dn)
            group_mails.append(user.mailPrimaryAddress)
        group_mail = random_email()
        udm.create_group(set={
            "mailAddress": group_mail,
            "users": group_members
        })
        list_name = uts.random_name()
        list_mail = "%s@%s" % (list_name, DOMAIN)
        udm.create_object("mail/lists",
                          set={
                              "name": list_name,
                              "mailAddress": list_mail,
                              "members": [group_mail]
                          },
                          wait_for_drs_replication=True)
        token = make_token()
        send_mail(recipients=list_mail, msg=token, debuglevel=DEBUG_LEVEL)
        for mail in group_mails:
            check_delivery(token, mail, True)
def test_group_mail_equal_user_mail_alt():
    print(
        "### The group's mail is identical to a users mail_alternative_address"
    )
    with udm_test.UCSTestUDM() as udm:
        group_mail = random_email()
        user_a = random_mail_user(udm=udm, mail_alternative_address=group_mail)
        user_b = random_mail_user(udm=udm)
        udm.create_group(set={"mailAddress": group_mail, "users": [user_b.dn]})
        token = make_token()
        send_mail(recipients=group_mail, msg=token, debuglevel=DEBUG_LEVEL)
        check_delivery(token, user_a.mailPrimaryAddress, True)
        check_delivery(token, user_b.mailPrimaryAddress, True)