def test_delete_decreases_count(self): # GIVEN 3 items self.assertEqual(tasks.count(), 3) # WHEN we delete one tasks.delete(self.ids[0]) # THEN count decreases by 1 self.assertEqual(tasks.count(), 2)
def delete(id, accessToken=None): ''' Delete a list. :param id: :return: ''' try: mylist = _get(id) if not mylist: logging.error("List %s doesn't exist.", id) return False print mylist if 'tasks' in mylist: for task in mylist['tasks']: tasks.delete(task, accessToken=accessToken) db.lists().child(id).delete() return True except Exception as e: logging.exception("Couldn't delete list with id %s!" % id) return False
def delete(id, accessToken=None): ''' Delete a list. :param id: :return: ''' try: mylist = _get(id) if not mylist: logging.error("List %s doesn't exist.", id) return False print mylist if 'tasks' in mylist: for task in mylist['tasks']: tasks.delete(task, accessToken=accessToken) db.lists().child(id).delete() return True except Exception as e: logging.exception("Couldn't delete list with id %s!" % id) return False
def test_after_del(): """tasks'count should sub 1 after tasks.del()""" task_id = tasks.add(tasks.Task('something')) count_before = tasks.count() tasks.delete(task_id) count_after = tasks.count() assert count_after == count_before - 1
def test_count_remove(): """Test after removing a task.""" for e in ['do something', 'do nothing', 'do else']: new_task = Task(e) tasks.add(new_task) tasks.delete(3) tasks_nr = tasks.count() assert tasks_nr == 2
def test_delete_task(db_with_4_tasks_id_returned): ids = db_with_4_tasks_id_returned.keys() first_id, *rest = ids tasks.delete(first_id) all_ids = [t.id for t in tasks.list_tasks()] assert tasks.count() == len(rest) assert first_id not in all_ids
def test_delete_decreases_count(db_with_3_tasks): ids = [t.id for t in tasks.list_tasks()] # GIVEN 3 items assert tasks.count() == 3 # WHEN we delete one tasks.delete(ids[0]) # THEN counte decreases by 1 assert tasks.count() == 2
def test_after_deletion_db_count_changes(): """ Check, that after deletion count changes """ tasks.start_tasks_db(str("."), 'tiny') before_deletion_count = tasks.count() tasks.delete(pytest.task_id) after_deletion_count = tasks.count() assert before_deletion_count - 1 == after_deletion_count tasks.stop_tasks_db()
def test_delete_task(): ids = [tasks.add(t) for t in tasks_to_try] first_id, *rest = ids tasks.delete(first_id) all_ids = [t.id for t in tasks.list_tasks()] #assert tasks.get(first_id) == None get не работает на удаленном Task assert tasks.count() == len(rest) assert first_id not in all_ids
def test_tasks_delete(self): test1_delete_list = [{ 'name': 'First task', 'time_spent': '0:25', 'notes': '', 'completed': False }, { 'name': 'Second task', 'time_spent': '0:25', 'notes': '', 'completed': True }, { 'name': 'Third task', 'time_spent': '0:25', 'notes': '', 'completed': False }] test1_expected = [{ 'name': 'First task', 'time_spent': '0:25', 'notes': '', 'completed': False }, { 'name': 'Second task', 'time_spent': '0:25', 'notes': '', 'completed': True }] test1_actual = tasks.delete(test1_delete_list, 2) self.assertEqual(test1_expected, test1_actual)
def tasks_api(): if request.method == "GET": return tasks.get() elif request.method == "POST": return tasks.post() elif request.method == "PATCH": return tasks.update() elif request.method == "DELETE": return tasks.delete()
def route_notifications(): body = bottle.request.body.getvalue() print 'notification', body if body: body = json.loads(body) if body.get('operation') == 'DELETE' and body.get( 'collection') == 'timeline': item = models.find_task_by_mirror(body.get('itemId')) if not item: return '{"status":"error","message":"Not found"}' profile = models.find_profile_by_id(item.get('profile_id')) credentials = auth.credentials_from_json(profile.get('credentials')) tservice = tasks.build_service(credentials) gservice = glass.build_service(credentials) tasks.delete(tservice, item.get('task_id')) get_tasks(tservice, gservice, profile) if body.get('operation') == 'INSERT' and body.get( 'collection') == 'timeline': profile = models.find_profile() credentials = auth.credentials_from_json(profile.get('credentials')) tservice = tasks.build_service(credentials) gservice = glass.build_service(credentials) mirror = glass.get_item(gservice, body.get('itemId')) result = tservice.tasks().insert(tasklist='@default', body={ 'title': mirror.get('text') }).execute() print 'mirror', mirror return '{"status":"ok"}'
import sys import os import settings import tasks import log if len(sys.argv) != 2: print('error: expected 1 argument') print('usage: deltask <path-to-task> | -a|--all') print('options:') print('-a : delete all tasks') sys.exit() sys.argv[0] = 'deltask' taskPath = sys.argv[1] if taskPath == '-a' or taskPath == '--all': if not os.path.exists(settings.TASKS_DIR): print('no tasks to delete.') sys.exit() else: print('deleting all tasks') tasks.deleteAll() else: print('deleting task: ' + taskPath) tasks.delete(taskPath) log.add(' '.join(sys.argv)) print('task deleted.')
def test_delete_raises(): with pytest.raises(TypeError): tasks.delete(task_id=(1, 2, 3))
def test_delete_raises(): """delete() should raise an exception with wrong type param.""" with pytest.raises(TypeError): tasks.delete(task_id=(1, 2, 3))
def delete_task(): date = input("Date?") number = input("Number?") tasks.delete(date, number)
def main_menu(task_lists: dict[str, list], current_list: str, arguments: Namespace): verbose = False active_tasks = task_lists.get(current_list) while True: task_lists[current_list] = active_tasks data = format_all_tasks_to_plaintext(task_lists, current_list) save_data(data, os.getenv('TOD_FP')) print_all_tasks(current_list, active_tasks, verbose) raw_command = input('► ') cls() parsed_command = re.match(r'([A-Za-z]*)(\d+)?:?(\d+)?', raw_command).groups() command, selected_number, dest_number = parsed_command if selected_number: selected_number = int(selected_number) if dest_number: dest_number = int(dest_number) number_of_tasks = len(active_tasks) if selected_number is not None \ and selected_number >= number_of_tasks \ and command != 'a': print(C.RED + "No such task.\n" + C.NORMAL) continue cls() if raw_command == '': show_help() elif not command and selected_number is not None: task = active_tasks[selected_number] time_spent_in_seconds = spend_time_on_task(task.get('name'), task.get('notes'), arguments.pomodoro) prev_time_spent_in_seconds = convert_time_spent_to_seconds( task.get('time_spent')) total_time_spent = prev_time_spent_in_seconds + time_spent_in_seconds formatted_time_spent = format_seconds_to_time_spent( total_time_spent) updated_task = {**task, 'time_spent': formatted_time_spent} tasks.update(active_tasks, updated_task, selected_number) print(C.PURPLE + 'Elapsed time added.' + C.NORMAL) elif command == 'aa': cls() while True: task_name, task_notes = task_name_input() if not task_name: break new_task = { 'name': task_name, 'time_spent': '0:00', 'notes': task_notes, 'completed': False } active_tasks = tasks.add(active_tasks, new_task, selected_number) cls() print(C.PURPLE + 'Tasks added.' + C.NORMAL) elif command == 'al': cls() new_list_name = list_name_input() cls() if not new_list_name: print(C.RED + 'No name entered.' + C.NORMAL) continue task_lists[new_list_name] = list() current_list = new_list_name active_tasks = task_lists[current_list] print(C.PURPLE + 'List created.' + C.NORMAL) elif command == 'a': task_name, task_notes = task_name_input() cls() if not task_name: print(C.RED + 'Cannot add empty task.' + C.NORMAL) continue new_task = { 'name': task_name, 'time_spent': '0:00', 'notes': task_notes, 'completed': False } active_tasks = tasks.add(active_tasks, new_task, selected_number) print(C.PURPLE + 'Task added.' + C.NORMAL) elif command == 'b': if selected_number is None: selected_number = task_number_input(number_of_tasks) timestamp_before = int(time.time()) current_number = selected_number current_task = active_tasks[selected_number] print(C.YELLOW + current_task.get('name') + C.NORMAL + '\n') if current_task.get('notes'): print(C.GRAY + current_task.get('notes') + C.NORMAL + '\n') print('Enter your new broken down tasks:\n') while True: current_number += 1 task_name, task_notes = task_name_input() if not task_name: break new_task = { 'name': task_name, 'time_spent': '0:00', 'notes': task_notes, 'completed': False } active_tasks = tasks.add(active_tasks, new_task, current_number) timestamp_after = int(time.time()) time_spent_in_seconds = timestamp_after - timestamp_before prev_time_spent_in_seconds = convert_time_spent_to_seconds( current_task.get('time_spent')) total_time_spent = prev_time_spent_in_seconds + time_spent_in_seconds formatted_time_spent = format_seconds_to_time_spent( total_time_spent) updated_task = {**current_task, 'time_spent': formatted_time_spent} tasks.update(active_tasks, updated_task, selected_number) cls() print(C.PURPLE + 'Tasks added.' + C.NORMAL) elif command == 'c': if selected_number is None: selected_number = task_number_input(number_of_tasks) cls() if selected_number is not None: active_tasks = tasks.set_completion(active_tasks, selected_number) print(C.PURPLE + 'Task updated.' + C.NORMAL) elif command == 'dd': active_tasks = [] print(C.PURPLE + 'Tasks deleted.' + C.NORMAL) elif command == 'dl': list_names = list(task_lists.keys()) print_all_lists(list_names) selected_number = list_number_input(len(list_names)) cls() selected_list = list_names[selected_number] del task_lists[selected_list] if selected_list == current_list: current_list = list_names[0] print(C.PURPLE + 'List deleted.' + C.NORMAL) elif command == 'd': if selected_number is None: selected_number = task_number_input(number_of_tasks) cls() active_tasks = tasks.delete(active_tasks, selected_number) print(C.PURPLE + 'Task deleted.' + C.NORMAL) elif command == 'e': if number_of_tasks == 0: print(C.PURPLE + 'No tasks to edit.' + C.NORMAL) continue if selected_number is None: print_all_tasks(current_list, active_tasks) selected_number = task_number_input(number_of_tasks) cls() task = active_tasks[selected_number] print('\n' + C.BLUE + "Original Task:" + C.NORMAL) name = task['name'] notes = ': ' + task.get('notes') if task.get('notes') else '' time_spent = task['time_spent'] print(f"\n{name}{notes}\n({time_spent})\n") updated_task_name, updated_task_notes = task_name_input( name, task['notes']) updated_time_spent = task_time_input(time_spent) cls() updated_task = { **task, 'name': updated_task_name, 'notes': updated_task_notes, 'time_spent': updated_time_spent } active_tasks = tasks.update(active_tasks, updated_task, selected_number) print(C.PURPLE + 'Task updated.' + C.NORMAL) elif command == 'h': show_help() elif command == 'l': print_all_lists(task_lists) list_names = task_lists.keys() selected_number = list_number_input(len(list_names)) cls() current_list = list(list_names)[selected_number] active_tasks = task_lists.get(current_list) print(C.PURPLE + 'List selected.' + C.NORMAL) elif command == 'ml': if number_of_tasks == 0: print(C.PURPLE + 'No tasks to move.' + C.NORMAL) continue print_all_tasks(current_list, active_tasks) if selected_number is None: selected_number = task_number_input(number_of_tasks) cls() list_names = list(task_lists.keys()) print_all_lists(list_names) destination_list_number = int( input(f'Move task {selected_number} to which list? ')) destination_list = task_lists[list_names[destination_list_number]] cls() active_tasks, destination_list = tasks.move_to_list( active_tasks, destination_list, selected_number) task_lists[list_names[destination_list_number]] = destination_list print(C.PURPLE + 'Task moved.' + C.NORMAL) elif command == 'm': if number_of_tasks == 0: print(C.PURPLE + 'No tasks to move.' + C.NORMAL) continue print_all_tasks(current_list, active_tasks) if selected_number is None: selected_number = task_number_input(number_of_tasks) if dest_number is None: dest_number = input(f'Move task {selected_number} to where? ') if not type(dest_number) == int: cls() print(C.RED + 'Invalid number.' + C.NORMAL) continue cls() dest_number = int(dest_number) active_tasks = tasks.move(active_tasks, selected_number, dest_number) print(C.PURPLE + 'Tasks updated.' + C.NORMAL) elif command == 'n': verbose = True if not verbose else False message = 'Notes are now fully visible.' if verbose else 'Notes are now truncated.' print(C.PURPLE + message + C.NORMAL) elif command == 'q': sys.exit() elif command == 'r': active_tasks = tasks.reduce(active_tasks) print(C.PURPLE + 'Tasks reduced.' + C.NORMAL) elif command == 's': print('Starting new task list...\n') active_tasks = start_new_task_list() cls() elif command == 't': spend_time_on_task('Timer', None) cls() else: print(C.WHITE + "Try 'help' for more information." + C.NORMAL)