示例#1
0
def test_authentication_with_invalid_credentials(in_memory_repo):
    new_username = '******'
    new_password = '******'
    auth_services.add_user(new_username, new_password, in_memory_repo)
    with pytest.raises(auth_services.AuthenticationException):
        auth_services.authenticate_user(new_username, '123456789',
                                        in_memory_repo)
示例#2
0
def test_cannot_add_user_with_existing_name(empty_memory_repo):
    username = '******'
    password = '******'
    auth_services.add_user(username, password, empty_memory_repo)

    with pytest.raises(auth_services.NameNotUniqueException):
        auth_services.add_user(username, password, empty_memory_repo)
示例#3
0
def test_can_add_user(in_memory_repo):
    new_username = '******'
    new_password = '******'
    auth_services.add_user(new_username, new_password, in_memory_repo)
    user_as_dict = auth_services.get_user(new_username, in_memory_repo)
    assert user_as_dict['username'] == new_username
    assert user_as_dict['password'].startswith(
        'pbkdf2:sha256:')  # Check password is encrypted.
示例#4
0
def test_authentication_with_valid_credentials(in_memory_repo):
    new_username = '******'
    new_password = '******'
    auth_services.add_user(new_username, new_password, in_memory_repo)
    try:
        auth_services.authenticate_user(new_username, new_password,
                                        in_memory_repo)
    except AuthenticationException:
        assert False
示例#5
0
def test_authentication_with_invalid_credentials(empty_memory_repo):
    new_username = '******'
    new_password = '******'

    auth_services.add_user(new_username, new_password, empty_memory_repo)

    with pytest.raises(auth_services.AuthenticationException):
        auth_services.authenticate_user(new_username, 'hacked_password',
                                        empty_memory_repo)
示例#6
0
def test_can_add_user(empty_memory_repo):
    new_username = '******'
    new_password = '******'

    auth_services.add_user(new_username, new_password, empty_memory_repo)

    user_as_dict = auth_services.get_user(new_username, empty_memory_repo)
    assert user_as_dict['username'] == new_username

    # Check that password has been encrypted.
    assert user_as_dict['password'].startswith('pbkdf2:sha256:')
示例#7
0
def test_authentication_with_valid_credentials(empty_memory_repo):
    new_username = '******'
    new_password = '******'

    auth_services.add_user(new_username, new_password, empty_memory_repo)

    try:
        auth_services.authenticate_user(new_username, new_password,
                                        empty_memory_repo)
    except auth_services.AuthenticationException:
        assert False
示例#8
0
def register():
    form = RegistrationForm()
    username_not_unique = None

    if form.validate_on_submit():
        # Successful POST, i.e. the username and password have passed validation checking.
        # Use the service layer to attempt to add the new user.
        try:
            services.add_user(form.username.data, form.password.data,
                              repo.repo_instance)

            # All is well, redirect the user to the login page.
            return redirect(url_for('authentication_bp.login'))
        except services.NameNotUniqueException:
            username_not_unique = 'That username is already taken - please try another'

    # For a GET or a failed POST request, return the Registration Web page.
    return render_template('authentication/credentials.html',
                           title='Register',
                           form=form,
                           username_error_message=username_not_unique,
                           handler_url=url_for('authentication_bp.register'))
示例#9
0
def test_cannot_add_user_with_existing_name(in_memory_repo):
    username = '******'
    password = '******'
    with pytest.raises(auth_services.NameNotUniqueException):
        auth_services.add_user(username, password, in_memory_repo)