示例#1
0
def test_list_users_request_invalid_filters():
    filters = 5
    request = ListUsersRequest(filters=filters)

    assert request.is_valid() is False
    assert request.filters == filters
    assert len(request.errors) == 1
    error = request.errors[0]
    assert error.parameter == 'filters'
    assert error.message == 'is not iterable'
示例#2
0
def login():
    data = http_request.get_json()
    name = data['name']
    password = data['password']
    request = ListUsersRequest(filters=dict(name=name))
    action = ListUsersAction(users_repository)
    response = action.execute(request)

    if not response or not response.value:
        message = 'Login failed. User with name {} not found.'.format(name)
        return jsonify(dict(message=message)), 401

    user = response.value[0]

    if not users_repository.check_password(user, password):
        message = 'Login failed. Invalid password.'
        return jsonify(dict(message=message)), 401

    user.is_active = True
    user.is_authenticated = True
    user.is_anonymous = False

    def get_id():
        return user.name

    user.get_id = get_id

    flask_login.login_user(user)
    authorization_manager.user = user
    return json_response(response.value[0], UserEncoder)
示例#3
0
def get_all_users():
    request = ListUsersRequest()
    action = ListUsersAction(users_repository)
    action.add_before_execution_hook(authorization_manager.authorize)
    response = action.execute(request)
    status = get_status(response)

    return json_response(response.value, UserEncoder, status)
def test_list_users_action_without_parameters(users):
    repo = mock.Mock()
    repo.list.return_value = users
    request = ListUsersRequest()
    action = ListUsersAction(repo=repo)
    response = action.execute(request)

    assert bool(response) is True
    assert response.value == repo.list.return_value
示例#5
0
def get_loggedin_user():
    name = current_user.get_id()
    request = ListUsersRequest(filters=dict(name=name))
    action = ListUsersAction(repo=users_repository)
    response = action.execute(request)

    if not response or not response.value:
        return None

    return response.value[0]
def test_list_users_action_with_parameters(users):
    filters = dict(name='name1')
    repo = mock.Mock()
    repo.list.return_value = [u for u in users if u.name == filters['name']]
    request = ListUsersRequest(filters=filters)
    action = ListUsersAction(repo=repo)
    response = action.execute(request)

    assert bool(response) is True
    assert response.value == repo.list.return_value
def test_list_handles_bad_request():
    repo = mock.Mock()
    request = ListUsersRequest(filters=5)
    action = ListUsersAction(repo=repo)
    response = action.execute(request)

    assert bool(response) is False
    assert response.value == {
        'type': ResponseFailure.PARAMETER_ERROR,
        'message': 'filters: is not iterable'
    }
def test_list_handles_exception():
    repo = mock.Mock()
    error_message = 'Error!!!'
    repo.list.side_effect = Exception(error_message)
    request = ListUsersRequest()
    action = ListUsersAction(repo=repo)
    response = action.execute(request)

    assert bool(response) is False
    assert response.value == {
        'type': ResponseFailure.SYSTEM_ERROR,
        'message': 'Exception: {}'.format(error_message)
    }
def test_list_users_action_with_hooks(users):
    repo = mock.Mock()
    repo.list.return_value = users
    request = ListUsersRequest()
    action = ListUsersAction(repo=repo)

    before = mock.MagicMock()
    after = mock.MagicMock()

    action.add_before_execution_hook(before)
    action.add_after_execution_hook(after)

    response = action.execute(request)

    assert before.called
    assert after.called

    assert bool(response) is True
    assert response.value == repo.list.return_value
示例#10
0
def test_list_users_request_with_filters():
    filters = dict(name='user')
    request = ListUsersRequest(filters=filters)
    assert request.is_valid() is True
    assert request.filters == filters
示例#11
0
def test_list_users_request_without_parameters():
    request = ListUsersRequest()
    assert request.is_valid() is True
    assert request.filters is None
示例#12
0
def test_list_users_request_with_empty_filters():
    filters = {}
    request = ListUsersRequest(filters=filters)
    assert request.is_valid() is True
    assert request.filters is None