Ejemplo n.º 1
0
def bay():
    qrystr_params = {
        'filters': {},
    }

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

    request_object = req.BayListRequestObject.from_dict(qrystr_params)

    repo = mr.MemRepo([bay1, bay2, bay3])
    use_case = uc.BayListUseCase(repo)

    response = use_case.execute(request_object)

    return Response(json.dumps(response.value, cls=ser.BayEncoder),
                    mimetype='application/json',
                    status=STATUS_CODES[response.type])
Ejemplo n.º 2
0
def test_repository_list_with_filters_code(bays):
    repo = memrepo.MemRepo(bays)
    _check_results(
        repo.list(filters={'code': '913694c6-435a-4366-ba0d-da5334a611b2'}),
        [bay3])
Ejemplo n.º 3
0
def test_repository_list_with_filters_size(bays):
    repo = memrepo.MemRepo(bays)
    _check_results(repo.list(filters={'size': 93}), [bay4])
    _check_results(repo.list(filters={'size__eq': 93}), [bay4])
    _check_results(repo.list(filters={'size__lt': 60}), [bay3])
    _check_results(repo.list(filters={'size__gt': 400}), [bay2])
Ejemplo n.º 4
0
def test_repository_list_with_filters_price(bays):
    repo = memrepo.MemRepo(bays)
    _check_results(repo.list(filters={'price': 60}), [bay3])
    _check_results(repo.list(filters={'price__eq': 60}), [bay3])
    _check_results(repo.list(filters={'price__lt': 60}), [bay1, bay4])
    _check_results(repo.list(filters={'price__gt': 60}), [bay2])
Ejemplo n.º 5
0
def test_repository_list_with_filters_unknown_operator(bays):
    repo = memrepo.MemRepo(bays)
    with pytest.raises(ValueError):
        repo.list(filters={'price__in': [20, 30]})
Ejemplo n.º 6
0
def test_repository_list_with_filters_unknown_key(bays):
    repo = memrepo.MemRepo(bays)
    with pytest.raises(KeyError):
        repo.list(filters={'name': 'aname'})
Ejemplo n.º 7
0
def test_repository_list_without_parameters(bays):
    repo = memrepo.MemRepo(bays)
    assert repo.list() == bays