예제 #1
0
def test_repository_list_with_price_greater_than_filter(room_dicts):
    repo = memrepo.MemRepo(room_dicts)
    repo_rooms = repo.list(filters={'price__gt': 48})
    assert len(repo_rooms) == 2
    assert set([r.code for r in repo_rooms]) ==\
    {
        '913694c6-435a-4366-ba0d-da5334a611b2',
        'fe2c3195-aeff-487a-a08f-e0bdc0ec6e9a'
    }
예제 #2
0
def test_repository_list_with_price_less_than_filter(room_dicts):
    repo = memrepo.MemRepo(room_dicts)
    repo_rooms = repo.list(filters={'price__lt': 60})
    assert len(repo_rooms) == 2
    assert set([r.code for r in repo_rooms]) ==\
    {
        'f853578c-fc0f-4e65-81b8-566c5dffa35a',
        'eed76e77-55c1-41ce-985d-ca49bf6c0585'
    }
예제 #3
0
def room():
    qrystr_params = {
        'filters': {},
    }
    for arg, values in request.args.items():
        if arg.startswith('filter_'):
            qrystr_params['filters'][arg.replace('filter_', '')] = int(values)
    request_object = req.RoomListRequestObject.from_dict(qrystr_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])
예제 #4
0
from repository import memrepo as mr
from 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])
예제 #5
0
def test_repository_list_with_price_between_filter(room_dicts):
    repo = memrepo.MemRepo(room_dicts)
    repo_rooms = repo.list(filters={'price__lt': 66, 'price__gt': 48})
    assert len(repo_rooms) == 1
    assert repo_rooms[0].code == '913694c6-435a-4366-ba0d-da5334a611b2'
예제 #6
0
def test_repository_list_with_code_equal_filter(room_dicts):
    repo = memrepo.MemRepo(room_dicts)
    repo_rooms = repo.list(
        filters={'code__eq': 'fe2c3195-aeff-487a-a08f-e0bdc0ec6e9a'})
    assert len(repo_rooms) == 1
    assert repo_rooms[0].code == 'fe2c3195-aeff-487a-a08f-e0bdc0ec6e9a'
예제 #7
0
def test_repository_list_without_parameters(room_dicts):
    repo = memrepo.MemRepo(room_dicts)
    rooms = [r.Room.from_dict(i) for i in room_dicts]
    assert repo.list() == rooms