def test_repository_list_with_filters_size(storagerooms): repo = mem_repo.MemRepo(storagerooms) _check_results(repo.list(filters={'size': 93}), [storageroom4]) _check_results(repo.list(filters={'size__eq': 93}), [storageroom4]) _check_results(repo.list(filters={'size__lt': 60}), [storageroom3]) _check_results(repo.list(filters={'size__gt': 400}), [storageroom2])
def test_repository_list_with_filters_price(storagerooms): repo = mem_repo.MemRepo(storagerooms) _check_results(repo.list(filters={'price': 60}), [storageroom3]) _check_results(repo.list(filters={'price__eq': 60}), [storageroom3]) _check_results(repo.list(filters={'price__lt': 60}), [storageroom1, storageroom4]) _check_results(repo.list(filters={'price__gt': 60}), [storageroom2])
def storageroom(): qrystr_params = { 'filters': {}, } for arg, values in request.args.items(): if arg.startswith('filter_'): qrystr_params['filters'][arg.replace('filter_', '')] = values request_obj = ro.StorageRoomListRequestObject.from_dict(qrystr_params) repo = mr.MemRepo([ storageroom1, storageroom2, storageroom3, ]) use_case = uc.StorageRoomListUseCase(repo) response_obj = use_case.execute(request_obj) return Response(json.dumps(response_obj.value, cls=ser.StorageRoomEncoder), mimetype='application/json', status=STATUS_CODES[response_obj.type])
def test_repository_list_with_filters_code(storagerooms): repo = mem_repo.MemRepo(storagerooms) _check_results( repo.list(filters={'code': '913694c6-435a-4366-ba0d-da5334a611b2'}), [storageroom3])
def test_repository_list_with_filters_unknown_operator(storagerooms): repo = mem_repo.MemRepo(storagerooms) with pytest.raises(ValueError): repo.list(filters={'price__in': [20, 30]})
def test_repository_list_with_filters_unknown_key(storagerooms): repo = mem_repo.MemRepo(storagerooms) with pytest.raises(KeyError): repo.list(filters={'name': 'aname'})
def test_repository_list_without_parameters(storagerooms): repo = mem_repo.MemRepo(storagerooms) assert repo.list() == storagerooms