Beispiel #1
0
def test_lists_dto_add_item__when_user_has_no_access__raise_unauthorized_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_sub_id'

    lists_table().put_item(Item=list0)

    with pytest.raises(NotFoundError):
        ListsDto.add_item(list0['id'], 'new item', tested_user_id)
Beispiel #2
0
def test_lists_dto_add_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 = 'new item'
    res = ListsDto.add_item(list_id, new_item, tested_user_id)

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

    assert new_item in res
    assert new_item in res_saved['Item']['items']
Beispiel #3
0
def test_lists_dto_add_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.add_item('abcdef', 'new item', tested_user_id)
def add_item(id):
    assert isinstance(app.current_event, APIGatewayProxyEventV2)
    sub = _get_auth_user_sub(app.current_event)
    new_item = app.current_event.decoded_body
    return ListsDto.add_item(id, new_item, sub)