def test_date_search(self, mock_stdout): tasksearch_menu = TaskSearch() today_str = datetime.datetime.now().strftime('%m/%d/%Y') with mock.patch('builtins.input', side_effect=[today_str, 'q', 'q', 'q']): tasksearch_menu.search_by_taskdate() self.assertEqual(tasksearch_menu.entries_count(), 2)
def test_delete_task(self, mock_stdout): main_menu = MainMenu() test_name = "John Doe" task_title = "Testing Task To be deleted" task_timespent = "1" task_notes = "to be deleted" datestr = "07/04/1776" prompts = [ test_name, datestr, task_title, task_timespent, task_notes, 'y', 'q' ] with mock.patch('builtins.input', side_effect=prompts): main_menu.add_task() task_search = TaskSearch() prompts = ["07/04/1776", 'd', 'y', 'q', 'q'] with mock.patch('builtins.input', side_effect=prompts): task_search.search_by_taskdate() sdate = convertdate("07/04/1976") tasks = Task.select().where( Task.timestamp.year == sdate.year \ and Task.timestamp.month == sdate.month \ and Task.timestamp.day == sdate.day) self.assertEquals(len(tasks), 0)
def test_daterange_search(self, mock_stdout): tasksearch_menu = TaskSearch() startdate = "03/18/1980" enddate = "03/18/1981" prompts = [startdate, enddate, 'q', 'q', 'q'] with mock.patch('builtins.input', side_effect=prompts): tasksearch_menu.search_by_daterange() self.assertEqual(tasksearch_menu.entries_count(), 1)
def search(self): """ Search a task """ while_breaker = 1 while True: # This helps the testing, since these are kind of # infinite loops while testing, there's need for something # that can break them automatically if while_breaker > 100: break else: while_breaker += 1 utils.cls() menu = ("Do you want to search by: \n" "a) Exact Date \n" "b) Range of Dates \n" "c) Term \n" "d) Regex Pattern \n" "e) Employee \n" "f) Return to menu \n" ">") option = utils.get_input(menu).lower() # Handling the errors first if not option: utils.pause('Error: Blank spaces are not allowed') continue elif option not in 'abcdef': utils.pause("Error: {} isn't a valid option".format(option)) continue tasksearch = TaskSearch() if option == 'a': rows = tasksearch.search_by_date() elif option == 'b': rows = tasksearch.search_by_dates_range() elif option == 'c': rows = tasksearch.search_by_term() elif option == 'd': rows = tasksearch.search_by_regex() elif option == 'e': rows = tasksearch.search_by_employee() else: # Get us back to the initial menu return self.menu() self.display_results(rows)
def test_timespent_search(self, mock_stdout): tasksearch_menu = TaskSearch() with mock.patch('builtins.input', side_effect=['10', 'q', 'q', 'q']): tasksearch_menu.search_by_timespent() self.assertEqual(tasksearch_menu.entries_count(), 1)
def test_employee_search(self, mock_stdout): tasksearch_menu = TaskSearch() with mock.patch('builtins.input', side_effect=['John', '1', 'q', 'q', 'q']): tasksearch_menu.search_by_employee_name() self.assertEqual(tasksearch_menu.entries_count(), 3)
def test_simple_search_notfound(self, mock_stdout): tasksearch_menu = TaskSearch() with mock.patch('builtins.input', side_effect=['dog', 'q', 'q']): tasksearch_menu.simple_search() self.assertEqual(tasksearch_menu.entries_count(), 0)
def test_view_tasks(self, mock_stdout): tasksearch_menu = TaskSearch() with mock.patch('builtins.input', side_effect=['s', 'v', 'n', 'p', 'q', 'q']): tasksearch_menu.view_entries() self.assertEqual(tasksearch_menu.entries_count(), 3)
def task_search(self): """Search for tasks""" clear() tasksearch = TaskSearch() tasksearch.menu_loop()