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)
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)
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
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)