Example #1
0
def test_build_user_list_request_accepted_filters(key):
    filters = {key: 1}

    request = build_user_list_request(filters=filters)

    assert request.filters == filters
    assert bool(request) is True
Example #2
0
def test_build_user_list_request_rejected_filters(key):
    filters = {key: 1}

    request = build_user_list_request(filters=filters)

    assert request.has_errors()
    assert request.errors[0]["parameter"] == "filters"
    assert bool(request) is False
Example #3
0
def test_users_list_without_parameters(domain_users):
    repo = mock.Mock()
    repo.list.return_value = domain_users

    request = build_user_list_request()

    response = user_list_use_case(repo, request)

    assert bool(response) is True
    repo.list.assert_called_with(filters=None)
    assert response.value == domain_users
Example #4
0
def test_user_list_handles_bad_request():
    repo = mock.Mock()

    request = build_user_list_request(filters=5)

    response = user_list_use_case(repo, request)

    assert bool(response) is False
    assert response.value == {
        "type": ResponseTypes.PARAMETERS_ERROR,
        "message": "filters: Is not iterable",
    }
Example #5
0
def test_user_list_with_filters(domain_users):
    repo = mock.Mock()
    repo.list.return_value = domain_users

    qry_filters = {"user_id__eq": 5}
    request = build_user_list_request(filters=qry_filters)

    response = user_list_use_case(repo, request)

    assert bool(response) is True
    repo.list.assert_called_with(filters=qry_filters)
    assert response.value == domain_users
Example #6
0
def test_user_list_handles_generic_error():
    repo = mock.Mock()
    repo.list.side_effect = Exception("Just an error message")

    request = build_user_list_request(filters={})

    response = user_list_use_case(repo, request)

    assert bool(response) is False
    assert response.value == {
        "type": ResponseTypes.SYSTEM_ERROR,
        "message": "Exception: Just an error message",
    }
Example #7
0
def user_list():
    qrystr_params = {
        "filters": {},
    }

    for arg, values in request.args.items():
        if arg.startswith("filter_"):
            qrystr_params["filters"][arg.replace("filter_", "")] = values

    request_object = build_user_list_request(filters=qrystr_params["filters"])

    repo = MemRepo(users)
    response = user_list_use_case(repo, request_object)

    return Response(
        json.dumps(response.value, cls=UserJsonEncoder),
        mimetype="application/json",
        status=STATUS_CODES[response.type],
    )
Example #8
0
def test_build_user_list_request_without_parameters():
    request = build_user_list_request()

    assert request.filters is None
    assert bool(request) is True
Example #9
0
def test_build_user_list_request_with_incorrect_filter_keys():
    request = build_user_list_request(filters={"a": 1})

    assert request.has_errors()
    assert request.errors[0]["parameter"] == "filters"
    assert bool(request) is False
Example #10
0
def test_build_user_list_request_with_invalid_filters_parameter():
    request = build_user_list_request(filters=5)

    assert request.has_errors()
    assert request.errors[0]["parameter"] == "filters"
    assert bool(request) is False
Example #11
0
def test_build_user_list_request_with_empty_filters():
    request = build_user_list_request({})

    assert request.filters == {}
    assert bool(request) is True