def room(): repo = mr.MemRepo([room1, room2, room3]) use_case = uc.RoomListUseCase(repo) result = use_case.execute() return Response(json.dumps(result, cls=ser.RoomJsonEncoder), mimetype='application/json', status=200)
def test_room_list_without_params(domain_rooms): repo = mock.Mock() repo.list.return_value = domain_rooms room_list_use_case = uc.RoomListUseCase(repo) result = room_list_use_case.execute() repo.list.assert_called_with() assert result == domain_rooms
def test_room_list_handles_bad_request(): repo = mock.Mock() room_list_use_case = uc.RoomListUseCase(repo) request_object = req.RoomListRequestObject.from_dict({'filters': 5}) response_object = room_list_use_case.execute(request_object) assert bool(response_object) is False assert response_object.value == { 'type': res.ResponseFailure.PARAMETERS_ERROR, 'message': "filters: filters should be a mapping" }
def test_room_list_handles_generic_error(): repo = mock.Mock() repo.list.side_effect = Exception('Just an error message') room_list_use_case = uc.RoomListUseCase(repo) request_object = req.RoomListRequestObject.from_dict({}) response_object = room_list_use_case.execute(request_object) assert bool(response_object) is False assert response_object.value == { 'type': res.ResponseFailure.SYSTEM_ERROR, 'message': "Exception: Just an error message" }
def test_room_list_with_filters(domain_rooms): repo = mock.Mock() repo.list.return_value = domain_rooms room_list_use_case = uc.RoomListUseCase(repo) qry_filters = {'code__eq': 5} request_object = req.RoomListRequestObject.from_dict( {'filters': qry_filters}) response_object = room_list_use_case.execute(request_object) assert bool(response_object) is True repo.list.assert_called_with(filters=qry_filters) assert response_object.value == domain_rooms
def test_room_list_without_parameters(domain_rooms): repo = mock.Mock() repo.list.return_value = domain_rooms room_list_use_case = uc.RoomListUseCase(repo) request = req.RoomListRequestObject() response = room_list_use_case.execute(request) assert bool(response) is True repo.list.assert_called_with(filters=None) assert response.value == domain_rooms
def test_room_list_handles_bad_request(): repo = mock.Mock() room_list_use_case = uc.RoomListUseCase(repo) request_object = req.RoomListRequestObject.from_dict({"filters": 5}) response_object = room_list_use_case.execute(request_object) assert bool(response_object) is False assert response_object.value == { "type": res.ResponseFailure.PARAMETERS_ERROR, "message": "filters: Is not iterable", }
def room(): query_str_params = {"filters": {}} for arg, values in request.args.items(): if arg.startswith("filter_"): query_str_params["filters"][arg.replace("filter_", "")] = values request_object = req.RoomListRequestObject.from_dict(query_str_params) repo = mr.MemRepo([room1, room2, room3]) use_case = uc.RoomListUseCase(repo) response = use_case.execute(request_object) return Response( json.dumps(response.value, cls=ser.RoomJsonEncoder), mimetype="application/json", status=STATUS_CODES[response.type], )
def room(): qrystr_params = { "filters": {}, } for arg, values in request.args.items(): if arg.startswith('filter_'): qrystr_params['filters'][arg.replace('filter_', '')] = values request_object = req.RoomListRequestObject.from_dict(qrystr_params) repo = pr.PostgresRepo(connection_data) use_case = uc.RoomListUseCase(repo) response = use_case.execute(request_object) return Response(json.dumps(response.value, cls=ser.RoomJsonEncoder), mimetype='application/json', status=STATUS_CODES[response.type])
def test_room_list_without_parameters(domain_rooms): ''' mock the repo so it provides a list method that returns the list of models. then initialise the uc and execute it. then check the repo method was called without params. then check the result of the uc execution is the same as the full list of mock. ''' repo = mock.Mock() repo.list.return_value = domain_rooms room_list_use_case = uc.RoomListUseCase(repo) request = req.RoomListRequestObject() response = room_list_use_case.execute(request) assert bool(response) is True repo.list.assert_called_with(filters=None) assert response.value == domain_rooms
from rentomatic.repository import memrepo as mr from rentomatic.use_cases import room_list_use_case as uc room1 = { 'code': 'f853578c-fc0f-4e65-81b8-566c5dffa35a', 'size': 215, 'price': 39, 'longitude': -0.09998975, 'latitude': 51.75436293, } room2 = { 'code': 'fe2c3195-aeff-487a-a08f-e0bdc0ec6e9a', 'size': 405, 'price': 66, 'longitude': 0.18228006, 'latitude': 51.74640997, } room3 = { 'code': '913694c6-435a-4366-ba0d-da5334a611b2', 'size': 56, 'price': 60, 'longitude': 0.27891577, 'latitude': 51.45994069, } repo = mr.MemRepo([room1, room2, room3]) use_case = uc.RoomListUseCase(repo) result = use_case.execute() print([room.to_dict() for room in result])