示例#1
0
 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)
示例#2
0
    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)
示例#3
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)
示例#5
0
 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)
示例#6
0
 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)
示例#7
0
 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)
示例#8
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)
示例#9
0
 def task_search(self):
     """Search for tasks"""
     clear()
     tasksearch = TaskSearch()
     tasksearch.menu_loop()