Esempio n. 1
0
def test_should_show_all_completed_items_if_there_are_three_or_fewer():
    items = [
        Item(1, 'Task 1', date.today(), 'Done'),
        Item(2, 'Task 2', date.today(), 'Done'),
        Item(3, 'Task 3', date.today(), 'Doing'),
        Item(4, 'Task 4', date.today(), 'Done'),
    ]

    view_model = ViewModel(items)

    assert view_model.show_all_done_items is True
Esempio n. 2
0
def test_should_not_show_all_completed_items_if_there_are_more_than_three():
    items = [
        Item(1, 'Task 1', date.today(), 'Done'),
        Item(2, 'Task 2', date.today(), 'Done'),
        Item(3, 'Task 3', date.today(), 'Done'),
        Item(4, 'Task 4', date.today(), 'Done'),
    ]

    view_model = ViewModel(items)

    assert view_model.show_all_done_items is False
Esempio n. 3
0
def test_recent_items_contain_only_items_last_modified_today():
    items = [
        Item(1, 'Done Yesterday', datetime(2020, 6, 15, 23, 59, 59), 'Done'),
        Item(2, 'Done Today', datetime(2020, 6, 16, 0, 0, 0), 'Done'),
        Item(3, 'Doing Today', datetime(2020, 6, 16, 9, 0, 0), 'Doing'),
    ]

    with freeze_time("2020-06-16 09:30:00"):
        view_model = ViewModel(items)

        assert view_model.recent_done_items == [
            Item(2, 'Done Today', datetime(2020, 6, 16, 0, 0, 0), 'Done'),
        ]
Esempio n. 4
0
def test_categories_are_empty_if_no_matching_items():
    items = [Item(1, 'Task 1', date.today(), 'Other Status')]

    view_model = ViewModel(items)

    assert len(view_model.to_do_items) == 0
    assert len(view_model.doing_items) == 0
    assert len(view_model.done_items) == 0
Esempio n. 5
0
def test_items_are_split_into_categories():
    items = [
        Item(1, 'Task 1', date.today(), 'Other Status'),
        Item(2, 'Task 2', date.today(), 'To Do'),
        Item(3, 'Task 3', date.today(), 'Done'),
        Item(4, 'Task 4', date.today(), 'To Do'),
        Item(5, 'Task 5', date.today(), 'Doing')
    ]

    view_model = ViewModel(items)

    assert view_model.to_do_items == [
        Item(2, 'Task 2', date.today(), 'To Do'),
        Item(4, 'Task 4', date.today(), 'To Do')
    ]
    assert view_model.doing_items == [Item(5, 'Task 5', date.today(), 'Doing')]
    assert view_model.done_items == [Item(3, 'Task 3', date.today(), 'Done')]
def uncomplete_item(id):
    """
    Moves the item with the specified ID to the "To-Do" list in Trello.

    Args:
        id (str): The ID of the item.

    Returns:
        item: The saved item, or None if no items match the specified ID.
    """
    todo_list = get_list('To Do')
    card = move_card_to_list(id, todo_list)

    return Item.fromTrelloCard(card, todo_list)
def start_item(id):
    """
    Moves the item with the specified ID to the "Doing" list in Trello.

    Args:
        id (str): The ID of the item.

    Returns:
        item: The saved item, or None if no items match the specified ID.
    """
    doing_list = get_list('Doing')
    card = move_card_to_list(id, doing_list)

    return Item.fromTrelloCard(card, doing_list)
def get_items():
    """
    Fetches all items (known as "cards") from Trello.

    Returns:
        list: The list of saved items.
    """
    lists = get_lists()

    items = []
    for card_list in lists:
        for card in card_list['cards']:
            items.append(Item.fromTrelloCard(card, card_list))

    return items
def add_item(name):
    """
    Adds a new item with the specified name as a Trello card.

    Args:
        name (str): The name of the item.

    Returns:
        item: The saved item.
    """
    todo_list = get_list('To Do')

    params = build_params({'name': name, 'idList': todo_list['id']})
    url = build_url('/cards')

    response = requests.post(url, params=params)
    card = response.json()

    return Item.fromTrelloCard(card, todo_list)