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
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
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
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", }
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
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", }
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], )
def test_build_user_list_request_without_parameters(): request = build_user_list_request() assert request.filters is None assert bool(request) is True
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
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
def test_build_user_list_request_with_empty_filters(): request = build_user_list_request({}) assert request.filters == {} assert bool(request) is True