def test_sequence_increment(tmpdir): default_dir = tmpdir.mkdir("default") todo = FileTodo() _list = List("default", str(default_dir)) todo.save(_list) filename = default_dir.join(todo.filename) cal = icalendar.Calendar.from_ical(filename.read()) sequence, = [ component.get("SEQUENCE", 0) for component in cal.subcomponents if component.name == "VTODO" ] assert sequence == 1 todo.save(_list) cal = icalendar.Calendar.from_ical(filename.read()) sequence, = [ component.get("SEQUENCE", 0) for component in cal.subcomponents if component.name == "VTODO" ] assert sequence == 2
def test_edit(runner, default_database): todo = FileTodo() todo.list = next(default_database.lists()) todo.summary = 'Eat paint' todo.due = datetime.datetime(2016, 10, 3) todo.save() result = runner.invoke(cli, ['edit', '1', '--due', '2017-02-01']) assert not result.exception assert '2017-02-01' in result.output default_database.update_cache() todo = next(default_database.todos(all=True)) assert todo.due == datetime.datetime(2017, 2, 1, tzinfo=tzlocal()) assert todo.summary == 'Eat paint'
def test_sorting_fields(tmpdir, runner, default_database): tasks = [] for i in range(1, 10): days = datetime.timedelta(days=i) todo = FileTodo(new=True) todo.list = next(default_database.lists()) todo.due = datetime.datetime.now() + days todo.created_at = datetime.datetime.now() - days todo.summary = 'harhar{}'.format(i) tasks.append(todo) todo.save() fields = ( 'id', 'uid', 'summary', 'due', 'priority', 'created_at', 'completed_at', 'dtstamp', 'status', 'description', 'location', 'categories', ) @given(sort_key=st.lists( st.sampled_from(fields + tuple('-' + x for x in fields)), unique=True )) def run_test(sort_key): sort_key = ','.join(sort_key) result = runner.invoke(cli, ['list', '--sort', sort_key]) assert not result.exception assert result.exit_code == 0 assert len(result.output.strip().splitlines()) == len(tasks) run_test()