def run(self, task): self._task = task self._label.set_text(task.description) task.addListener(self) while gtk.events_pending(): gtk.main_iteration() task.start(self)
def test_start(self): name = "Do the dishes" name2 = "Take out the garbage" tags = ["chores"] tasks = { name: task.Task( name=name, due=FIVE_PM, estimate=TEN_MINUTES, tags=tags, spans=[task.Span(start=NOW + ONE_SECOND)], ), name2: task.Task( name=name2, due=FIVE_PM, estimate=TEN_MINUTES, tags=tags, ), } active_task = tasks[name] with Replace("task.datetime", test_datetime(NOW + ONE_SECOND + ONE_SECOND, delta=0)): dateparser.conf.settings.RELATIVE_BASE = NOW + ONE_SECOND + ONE_SECOND tasks, active_task = task.start(tasks=tasks, name=name2, active_task=active_task) expected = task.Task( name=name, due=FIVE_PM, estimate=TEN_MINUTES, tags=tags, spans=[ task.Span(start=NOW + ONE_SECOND, stop=NOW + ONE_SECOND + ONE_SECOND) ], ) expected2 = task.Task( name=name2, due=FIVE_PM, estimate=TEN_MINUTES, tags=tags, spans=[task.Span(start=NOW + ONE_SECOND + ONE_SECOND)], ) self.assertEqual(len(tasks), 2) self.assertEqual(tasks[name], expected) self.assertEqual(tasks[name].spans[0].duration(), ONE_SECOND) self.assertEqual(active_task, tasks[name2]) self.assertEqual(active_task, expected2)
def run(): #Preparing variables db = database.Database() while(True): task = db.load_next() if task: print "Executing %s" % task.command try: output = task.start() print "[%d] Finished %s" % (task.id, task.command) print "[%d] Result %s" % (task.id, output) db.update_task(task_id=task.id, executed=True, correct=True) except Exception, why: print "Error executing %s" % task.command print why db.update_task(task_id=task.id, executed=True, correct=False) else: time.sleep(0.5)
def add_task(self, task): self.__running.append(task) task.start()
def test_integration(self): tasks: task.TaskDict = dict() active_task: Optional[task.Task] = None tags = ["chores"] names = ["Wash dishes", "Take out garbage", "Write task tracker"] with Replace("task.datetime", test_datetime(NOW, delta=0)): dateparser.conf.settings.RELATIVE_BASE = NOW tasks = task.add( tasks, name=names[0], due_input="5pm", estimate_input="ten minutes", tags=tags, ) expected = [ task.Task(name=names[0], due=FIVE_PM, estimate=TEN_MINUTES, tags=tags) ] self.assertEqual(list(tasks.values()), expected) noon_tomorrow = NOW.replace(hour=12) + datetime.timedelta(days=1) with Replace("task.datetime", test_datetime(NOW + ONE_SECOND, delta=0)): dateparser.conf.settings.RELATIVE_BASE = NOW + ONE_SECOND tasks = task.add( tasks, name=names[1], due_input="noon tomorrow", estimate_input="90 seconds", tags=tags, ) expected.append( task.Task(name=names[1], due=noon_tomorrow, estimate=90 * ONE_SECOND, tags=tags)) self.assertEqual(list(tasks.values()), expected) with Replace("task.datetime", test_datetime(NOW + 2 * ONE_SECOND, delta=0)): dateparser.conf.settings.RELATIVE_BASE = NOW + 2 * ONE_SECOND tasks, active_task = task.start( tasks=tasks, active_task=active_task, name=names[0], ) expected[0].spans = [task.Span(start=NOW + 2 * ONE_SECOND)] self.assertEqual(list(tasks.values()), expected) self.assertEqual(active_task, tasks[names[0]]) with Replace("task.datetime", test_datetime(NOW + 3 * ONE_SECOND, delta=0)): dateparser.conf.settings.RELATIVE_BASE = NOW + 3 * ONE_SECOND tasks, active_task = task.start( tasks=tasks, active_task=active_task, name=names[1], ) expected[0].spans[0].stop = NOW + 3 * ONE_SECOND expected[1].spans = [task.Span(start=NOW + 3 * ONE_SECOND)] self.assertEqual(list(tasks.values()), expected) self.assertEqual(active_task, tasks[names[1]]) with Replace("task.datetime", test_datetime(NOW + 4 * ONE_SECOND, delta=0)): dateparser.conf.settings.RELATIVE_BASE = NOW + 4 * ONE_SECOND tasks = task.add( tasks=tasks, name=names[2], ) expected.append(task.Task(name=names[2], tags=list())) self.assertEqual(list(tasks.values()), expected) self.assertEqual(active_task, tasks[names[1]]) with Replace("task.datetime", test_datetime(NOW + 5 * ONE_SECOND, delta=0)): dateparser.conf.settings.RELATIVE_BASE = NOW + 5 * ONE_SECOND tasks, active_task = task.close( tasks=tasks, active_task=active_task, name=names[0], ) expected[0].open = False self.assertEqual(list(tasks.values()), expected) self.assertEqual(active_task, tasks[names[1]]) with Replace("task.datetime", test_datetime(NOW + 6 * ONE_SECOND, delta=0)): dateparser.conf.settings.RELATIVE_BASE = NOW + 6 * ONE_SECOND tasks, active_task = task.close( tasks=tasks, active_task=active_task, name=names[1], ) expected[1].open = False expected[1].spans[0].stop = NOW + 6 * ONE_SECOND self.assertEqual(list(tasks.values()), expected) self.assertEqual(active_task, None) with Replace("task.datetime", test_datetime(NOW + 7 * ONE_SECOND, delta=0)): dateparser.conf.settings.RELATIVE_BASE = NOW + 7 * ONE_SECOND tasks, active_task = task.start(tasks=tasks, active_task=active_task, name=names[2]) expected[2].spans = [task.Span(start=NOW + 7 * ONE_SECOND)] self.assertEqual(list(tasks.values()), expected) self.assertEqual(active_task, tasks[names[2]]) with Replace("task.datetime", test_datetime(NOW + 8 * ONE_SECOND, delta=0)): dateparser.conf.settings.RELATIVE_BASE = NOW + 8 * ONE_SECOND active_task = task.stop(active_task=active_task) expected[2].spans[0].stop = NOW + 8 * ONE_SECOND self.assertEqual(list(tasks.values()), expected) self.assertEqual(active_task, None) with Replace("task.datetime", test_datetime(NOW + 9 * ONE_SECOND, delta=0)): dateparser.conf.settings.RELATIVE_BASE = NOW + 9 * ONE_SECOND tasks, active_task = task.start(tasks=tasks, active_task=active_task, name=names[2]) expected[2].spans.append(task.Span(start=NOW + 9 * ONE_SECOND)) self.assertEqual(list(tasks.values()), expected) self.assertEqual(active_task, tasks[names[2]])
def test_q_1(self): console_test("""17.9""", lambda: start(), lambda out_text: self.assertEqual(out_text, """0.9"""))