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