Ejemplo n.º 1
0
def test_lists_dto_update_item__when_user_has_no_access__raise_not_found_error(
        dynamodb_lists_table, sample_data):
    from sf_shopping_list.data.dto.lists_dto import ListsDto
    from sf_shopping_list.data.clients.dynamodb import lists_table

    list0 = copy.deepcopy(sample_data['lists'][0])
    list0['userId'] = 'other_user_id'

    lists_table().put_item(Item=list0)

    with pytest.raises(NotFoundError):
        ListsDto.update_item(list0['id'], 0, 'item2', tested_user_id)
Ejemplo n.º 2
0
def update_item(id):
    assert isinstance(app.current_event, APIGatewayProxyEventV2)
    sub = _get_auth_user_sub(app.current_event)
    try:
        item_idx = int(app.current_event.get_query_string_value('idx'))
        new_item = app.current_event.decoded_body
        if new_item is None:
            raise ValueError('Missing body')
    except (ValueError, TypeError):
        raise BadRequestError('Missing data')

    return ListsDto.update_item(id, item_idx, new_item, sub)
Ejemplo n.º 3
0
def test_lists_dto_update_item__when_user_is_guest__update_the_list(
        dynamodb_lists_table, sample_data):
    from sf_shopping_list.data.dto.lists_dto import ListsDto
    from sf_shopping_list.data.clients.dynamodb import lists_table

    list1 = sample_data['lists'][1]
    lists_table().put_item(Item=list1)
    list_id = list1['id']
    new_item = 'item3'
    item_idx = 1

    res = ListsDto.update_item(list_id, item_idx, new_item, tested_user_id)

    res_saved = lists_table().get_item(Key={'id': list_id})

    assert res[item_idx] == new_item
    assert res_saved['Item']['items'][item_idx] == new_item
Ejemplo n.º 4
0
def test_lists_dto_update_item__when_list_does_not_exist__raise_not_found_error(
        dynamodb_lists_table):
    from sf_shopping_list.data.dto.lists_dto import ListsDto

    with pytest.raises(NotFoundError):
        ListsDto.update_item('abcdef', 0, 'item3', tested_user_id)