Example #1
0
def items_view_model():
    return ViewModel([
        ToDoItem(1, "Title 1", Status.TO_DO, datetime.now()),
        ToDoItem(2, "Title 2", Status.TO_DO, datetime.now()),
        ToDoItem(3, "Title 3", Status.DOING, datetime.now()),
        ToDoItem(4, "Title 4", Status.DONE, datetime.now())
    ])
def test_items():
    # given
    item1 = ToDoItem(1, "First task", Status.DONE, datetime.date(2020, 5, 22))
    item2 = ToDoItem(2, "Second task", Status.TODO, datetime.date(2020, 5, 22))
    items = [item1, item2]

    # when
    indexViewModel = IndexViewModel(items, False, False)

    # then
    assert indexViewModel.items == items
Example #3
0
def done_items_view_model():
    return ViewModel([
        ToDoItem(11, "Title 1", Status.DONE,
                 datetime.now() - timedelta(days=3)),
        ToDoItem(12, "Title 2", Status.DONE,
                 datetime.now() - timedelta(hours=2)),
        ToDoItem(13, "Title 3", Status.DONE, datetime.now()),
        ToDoItem(14, "Title 4", Status.DONE,
                 datetime.now() - timedelta(days=30)),
        ToDoItem(15, "Title 5", Status.DONE,
                 datetime.now() - timedelta(hours=23))
    ])
def test_show_all_done_items():
    # given
    item1 = ToDoItem(1, "First task", Status.TODO, datetime.date(2020, 5, 22))
    item2 = ToDoItem(2, "Second task", Status.DOING,
                     datetime.date(2020, 5, 22))
    item3 = ToDoItem(3, "Third task", Status.DONE, datetime.date(2020, 5, 22))

    items = [item1, item2, item3]

    # when
    indexViewModel = IndexViewModel(items, False, False)

    # then
    assert indexViewModel.show_all_done_items == False
def test_index_page(monkeypatch, client):
    monkeypatch.setattr(
        'board_repository.BoardRepository.get_items', lambda self: [
            ToDoItem('123', 'Wash the car', 'To Do', datetime.now()),
            ToDoItem('456', 'Fly to space', 'Completed', datetime.now())
        ])

    mock_user(monkeypatch, client, roles=[AuthProvider.READER_ROLE])

    response = client.get('/')

    assert response.status_code == 200

    response_body = response.get_data(True)
    assert 'Wash the car' in response_body
    assert 'Fly to space' in response_body
    def get_items(self):
        """
        Fetches all todo list items from the db collection.

        Returns:
            list: The list of items.
        """
        items = self.get_collection_items()
        return [ToDoItem.fromJson(item) for item in items]
def test_all_completed_items_shown_if_fewer_than_five():
    now = datetime.now()
    yesterday = now - timedelta(days=1)

    view_model = ToDoItemsViewModel(
        user_roles=[],
        items=[
            ToDoItem('id_1', 'To do 1', ToDoItem.to_do_status, now),
            ToDoItem('id_2', 'Completed 1', ToDoItem.completed_status, now),
            ToDoItem('id_3', 'Completed 2', ToDoItem.completed_status, now),
            ToDoItem('id_4', 'Completed 3', ToDoItem.completed_status, now),
            ToDoItem('id_5', 'Completed 4', ToDoItem.completed_status,
                     yesterday)
        ])

    assert len(view_model.completed_items) == 4
    assert view_model.show_all_completed_items == True
    assert view_model.recent_completed_items == None
    assert view_model.older_completed_items == None
def test_only_completed_items_completed_today_shown_if_more_than_4():
    now = datetime.now()
    yesterday = now - timedelta(days=1)

    view_model = ToDoItemsViewModel(
        user_roles=[],
        items=[
            ToDoItem('id_1', 'To do 1', ToDoItem.to_do_status, now),
            ToDoItem('id_2', 'Completed 1', ToDoItem.completed_status, now),
            ToDoItem('id_3', 'Completed 2', ToDoItem.completed_status,
                     yesterday),
            ToDoItem('id_4', 'Completed 3', ToDoItem.completed_status, now),
            ToDoItem('id_5', 'Completed 4', ToDoItem.completed_status, now),
            ToDoItem('id_6', 'Completed 5', ToDoItem.completed_status,
                     yesterday)
        ])

    assert len(view_model.completed_items) == 5
    assert view_model.show_all_completed_items == False

    assert len(view_model.recent_completed_items) == 3
    assert (view_model.recent_completed_items[0]).id == 'id_2'
    assert (view_model.recent_completed_items[1]).id == 'id_4'
    assert (view_model.recent_completed_items[2]).id == 'id_5'

    items = len(view_model.older_completed_items) == 2
    assert (view_model.older_completed_items[0]).id == 'id_3'
    assert (view_model.older_completed_items[1]).id == 'id_6'
def test_older_done_items():
    # given
    item1 = ToDoItem(
        1, "First task", Status.TODO,
        datetime.datetime.combine(datetime.date(2020, 5, 22),
                                  datetime.time(1, 0)))
    item2 = ToDoItem(
        2, "Second task", Status.DONE,
        datetime.datetime.combine(datetime.date(2020, 8, 26),
                                  datetime.time(1, 0)))
    item3 = ToDoItem(
        3, "Third task", Status.DONE,
        datetime.datetime.combine(datetime.date(2020, 9, 20),
                                  datetime.time(1, 0)))

    items = [item1, item2, item3]

    # when
    indexViewModel = IndexViewModel(items, False, False)

    # then
    assert indexViewModel.older_done_items == [item2]
 def fetch_and_append_doing_list_items(self, items):
     r = self.doing_list.find()
     for item in r:
         items.append(ToDoItem.parse_json_doing_item(item))
 def fetch_and_append_to_do_list_items(self, items):
     r = self.todo_list.find()
     for item in r:
         items.append(ToDoItem.parse_json_to_do_item(item))
 def get_items(self):
     items = self.itemsCollection.find()
     return [ToDoItem(str(item['_id']), item['name'], item['status'], item['lastModified']) for item in items]
import pytest
from datetime import datetime, timedelta
from to_do_items_view_model import ToDoItemsViewModel
from to_do_item import ToDoItem
from app_user import AppUser
from auth_provider import AuthProvider

items = [
    ToDoItem('id_1', 'To do 1', ToDoItem.to_do_status, datetime.now()),
    ToDoItem('id_2', 'To do 2', ToDoItem.to_do_status, datetime.now()),
    ToDoItem('id_3', 'Completed 1', ToDoItem.completed_status, datetime.now())
]


@pytest.fixture
def view_model() -> ToDoItemsViewModel:
    return ToDoItemsViewModel(user_roles=[], items=items)


def test_user_is_writer_is_false_if_user_is_not_in_writer_role():
    view_model = ToDoItemsViewModel(user_roles=[AuthProvider.READER_ROLE],
                                    items=[])
    assert view_model.user_is_writer == False


def test_user_is_writer_is_true_if_user_is_in_writer_role():
    view_model = ToDoItemsViewModel(user_roles=[AuthProvider.WRITER_ROLE],
                                    items=[])
    assert view_model.user_is_writer == True