Exemplo n.º 1
0
def test_no_direct_login(client, token_for_dummy_user, post_data_step_3,
                         cleanup_dummy_user, mocker):
    """Failure logging the user in directly"""
    mocker.patch(
        "noggin.controller.registration.maybe_ipa_login",
        side_effect=python_freeipa.exceptions.FreeIPAError(
            message="something went wrong", code="4242"),
    )
    record_signal = mocker.Mock()
    with fml_testing.mock_sends(
            UserCreateV1({"msg": {
                "agent": "dummy",
                "user": "******"
            }})), user_registered.connected_to(record_signal):
        result = client.post(
            f"/register/activate?token={token_for_dummy_user}",
            data=post_data_step_3)
    assert_redirects_with_flash(
        result,
        expected_url="/",
        expected_message=
        ("Congratulations, your account has been created! Go ahead and sign in to proceed."
         ),
        expected_category="success",
    )
    record_signal.assert_called_once()
Exemplo n.º 2
0
def test_generic_pwchange_error(client, token_for_dummy_user, post_data_step_3,
                                cleanup_dummy_user, mocker):
    """Change user's password with an unhandled error"""
    ipa_client = mocker.Mock()
    ipa_client.change_password.side_effect = python_freeipa.exceptions.FreeIPAError(
        message="something went wrong", code="4242")
    untouched_ipa_client = mocker.patch(
        "noggin.controller.registration.untouched_ipa_client")
    untouched_ipa_client.return_value = ipa_client
    record_signal = mocker.Mock()
    with fml_testing.mock_sends(
            UserCreateV1({"msg": {
                "agent": "dummy",
                "user": "******"
            }})), user_registered.connected_to(record_signal):
        result = client.post(
            f"/register/activate?token={token_for_dummy_user}",
            data=post_data_step_3)
    assert_redirects_with_flash(
        result,
        expected_url="/",
        expected_message=
        ('Your account has been created, but an error occurred while setting your '
         'password (something went wrong). You may need to change it after logging in.'
         ),
        expected_category="warning",
    )
    record_signal.assert_called_once()
Exemplo n.º 3
0
def test_short_password_policy(client, post_data_step_3, token_for_dummy_user,
                               cleanup_dummy_user, mocker):
    """Register a user with a password rejected by the server policy"""
    record_signal = mocker.Mock()
    with fml_testing.mock_sends(
            UserCreateV1({"msg": {
                "agent": "dummy",
                "user": "******"
            }})), user_registered.connected_to(record_signal):
        post_data_step_3["password"] = post_data_step_3[
            "password_confirm"] = "1234567"
        result = client.post(
            f"/register/activate?token={token_for_dummy_user}",
            data=post_data_step_3)
    assert_redirects_with_flash(
        result,
        expected_url="/",
        expected_message=
        ('Your account has been created, but the password you chose does not comply '
         'with the policy (Constraint violation: Password is too short) and has thus '
         'been set as expired. You will be asked to change it after logging in.'
         ),
        expected_category="warning",
    )
    record_signal.assert_called_once()
Exemplo n.º 4
0
def test_field_error_step_3(client, token_for_dummy_user, mocker,
                            post_data_step_3, cleanup_dummy_user):
    """Activate a user with a password that the server errors on"""
    user_mod = mocker.patch(
        "noggin.controller.registration.ipa_admin.user_mod")
    user_mod.side_effect = python_freeipa.exceptions.ValidationError(
        message="invalid 'password': this is invalid", code="4242")
    record_signal = mocker.Mock()
    with fml_testing.mock_sends(UserCreateV1), user_registered.connected_to(
            record_signal):
        result = client.post(
            f"/register/activate?token={token_for_dummy_user}",
            data=post_data_step_3)
    assert_form_field_error(result,
                            field_name="password",
                            expected_message="this is invalid")
    record_signal.assert_called_once()
Exemplo n.º 5
0
def test_step_3(client, post_data_step_3, token_for_dummy_user,
                cleanup_dummy_user, mocker):
    """Register a user, step 3"""
    record_signal = mocker.Mock()
    with fml_testing.mock_sends(
            UserCreateV1({"msg": {
                "agent": "dummy",
                "user": "******"
            }})), user_registered.connected_to(record_signal):
        result = client.post(
            f"/register/activate?token={token_for_dummy_user}",
            data=post_data_step_3)
    assert_redirects_with_flash(
        result,
        expected_url="/",
        expected_message=
        "Congratulations, your account has been created! Welcome, Dummy User.",
        expected_category="success",
    )
    record_signal.assert_called_once()