Changeset 813e855 in flowtimer
- Timestamp:
- 08/30/24 00:12:27 (9 months ago)
- Branches:
- guix
- Children:
- 8f41b95
- Parents:
- 0384305
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
flowtimer/Phase.py
r0384305 r813e855 56 56 self._state = "aborted" 57 57 58 def aborted(self):58 def is_aborted(self): 59 59 return self.state == "aborted" 60 60 … … 69 69 self._state = "paused" 70 70 71 def running(self):71 def is_running(self): 72 72 return self._state == "running" 73 73 # return self.time_left > 0 74 74 75 def completed(self):76 return self._state == "completed"75 def is_terminated(self): 76 return (self.is_completed() or self.is_aborted()) 77 77 78 def paused(self): 78 def is_completed(self): 79 return self.ticks_left < 1 80 81 def is_paused(self): 79 82 return self._state == "paused" 80 83 -
flowtimer/RecurringPhaseSequence.py
r0384305 r813e855 33 33 assert phases is not [] 34 34 self._title = title 35 self. state = "initial"35 self._state = "initial" 36 36 self.phases = phases 37 37 self.current_phase = phases[0] … … 74 74 sum([each.ticks_left for each in self.upcoming_phases_in_pass()])) 75 75 76 def completed(self): 76 def state(self): 77 if self.is_completed(): 78 return "completed" 79 return self._state 80 81 def is_final_round(self): 82 return self.passes_left == 0 83 84 def is_completed(self): 77 85 return ((self.passes_left < 1) and 78 86 (not self.upcoming_phases_in_pass() and 79 self.current_phase.completed())) 87 self.current_phase.is_completed())) 88 89 def is_terminated(self): 90 return (self.is_aborted() or self.is_completed()) 91 92 def is_aborted(self): 93 return self._state == 'aborted' 80 94 81 95 def abort(self): 82 96 self.current_phase.abort() 83 self. state = "aborted"97 self._state = "aborted" 84 98 85 99 def start(self): 86 self. state = "running"100 self._state = "running" 87 101 88 102 def skip(self): … … 92 106 return 93 107 else: 94 if self. passes_left == 0:108 if self.is_final_round(): 95 109 self.abort() 96 110 return … … 110 124 self.passes_left -= 1 111 125 if self.passes_left < 1: 112 self. state = "completed"126 self._state = "completed" 113 127 else: 114 128 self.current_phase.reset() … … 116 130 117 131 def tick(self, ticks): 118 if not self. completed():132 if not self.is_completed(): 119 133 result = self.current_phase.tick(ticks) 120 if self.current_phase. completed():134 if self.current_phase.is_completed(): 121 135 self.advance_to_next_phase() 122 136 result = self.tick(abs(result)) 123 137 return 124 # if self.completed():125 # self.advance_to_next_phase()126 138 127 139 def unrolled(self): -
flowtimer/Schedule.py
r0384305 r813e855 119 119 120 120 def is_completed(self): 121 if (self.current_block. completed()) and (self.current_block_is_final()):121 if (self.current_block.is_completed()) and (self.current_block_is_final()): 122 122 return True 123 123 else: … … 137 137 138 138 def skip(self): 139 if self.current_block.is_sequence(): 140 print("Skip the next phase in sequence") 141 self.current_block.skip() 142 if self.current_block.is_terminated(): 143 if self.upcoming_blocks(): 144 self.current_block = self.upcoming_blocks()[0] 145 else: 146 self.abort() 147 return 139 148 if self.current_block_is_final(): 140 149 print("Time over") 141 150 self.abort() 142 return143 if self.current_block.is_sequence():144 print("Skip the next phase in sequence")145 self.current_block.skip()146 if self.current_block.completed():147 self.current_block = self.upcoming_blocks()[0]148 151 return 149 152 index = self.blocks.index(self.current_block) … … 173 176 if not self.is_completed(): 174 177 self.current_block.tick(ticks) 175 if self.current_block. completed():178 if self.current_block.is_completed(): 176 179 if self.current_block_is_final(): 177 180 self._state = "completed" -
flowtimer/main.py
r0384305 r813e855 69 69 orient="horizontal", length=600, mode="determinate") 70 70 self.progressbar["maximum"] = 59 71 self.progressbar.pack(side='top' )71 self.progressbar.pack(side='top', ipady=30) 72 72 self.label_duration = tk.Label(self.center_frame, bg='green') 73 73 self.label_duration.pack(side='top', fill='both', expand=True) … … 124 124 current_process = self.after(1000, self.tick) 125 125 if self.schedule.is_terminated(): 126 self.label_sequence.config(text= ("\n" + "\nTime over !"),126 self.label_sequence.config(text="Time over !", font='times 22', 127 127 bg=self.colors_for_phase("Completed").get('sequence_label'), 128 128 fg="white") 129 self.label_duration.config(text="", bg=self.colors_for_phase("Completed").get('duration_label'), 129 self.label_duration.config(text="", 130 bg=self.colors_for_phase("Completed").get('duration_label'), 130 131 fg="white") 131 132 self.progressbar.pack_forget() … … 147 148 fg="white") 148 149 self.label_duration.config(text=self.current_time_status(), font='times 22', 149 bg=colors.get(' duration_label'),150 bg=colors.get('widget'), 150 151 fg="white") 151 152 self.center_frame.configure(bg=colors.get('center_frame')) -
tests/test_phase.py
r0384305 r813e855 20 20 phase.start() 21 21 assert phase.state == "running" 22 assert phase. running() is True22 assert phase.is_running() is True 23 23 24 24 def test_phase_pause(self): … … 27 27 phase.pause() 28 28 assert phase.state == "paused" 29 assert phase. paused() is True29 assert phase.is_paused() is True 30 30 31 31 def test_phase_abort(self): … … 33 33 phase.abort() 34 34 assert phase.state == "aborted" 35 assert phase. aborted() is True35 assert phase.is_aborted() is True 36 36 37 37 def test_phase_tick(self): … … 47 47 phase.tick(300) 48 48 assert phase.ticks_left == 0 49 assert phase. completed() is True49 assert phase.is_completed() is True 50 50 51 51 def test_phase_tick_beyond_completion(self): -
tests/test_recurring_phase_sequence.py
r0384305 r813e855 2 2 import json 3 3 4 from flowtimer.Phase import Phase5 4 from flowtimer.RecurringPhaseSequence import RecurringPhaseSequence 6 5 … … 23 22 json_string = recurring_phase_sequence.to_json() 24 23 data = json.loads(json_string) 25 assert data[' state'] == "initial"24 assert data['_state'] == "initial" 26 25 assert data['initial_repetitions'] == 3 27 26 assert data['passes_left'] == 3 … … 29 28 30 29 def test_initial_state(self, recurring_phase_sequence): 31 assert recurring_phase_sequence.state == "initial"30 assert recurring_phase_sequence.state() == "initial" 32 31 assert recurring_phase_sequence.current_phase.title == "Tasking" 33 32 assert recurring_phase_sequence.passes_left == 3 … … 57 56 58 57 def test_completed(self, recurring_phase_sequence): 59 assert not recurring_phase_sequence. completed()58 assert not recurring_phase_sequence.is_completed() 60 59 for _ in range(3): 61 60 for phase in recurring_phase_sequence.phases: 62 61 recurring_phase_sequence.tick(phase.initial_ticks) 63 assert recurring_phase_sequence. completed()62 assert recurring_phase_sequence.is_completed() 64 63 65 64 def test_abort(self, recurring_phase_sequence): 66 65 recurring_phase_sequence.abort() 67 assert recurring_phase_sequence.state == "aborted"68 assert recurring_phase_sequence.current_phase. aborted()66 assert recurring_phase_sequence.state() == "aborted" 67 assert recurring_phase_sequence.current_phase.is_aborted() 69 68 70 69 def test_tick_progression(self, recurring_phase_sequence): -
tests/test_schedule.py
r0384305 r813e855 23 23 assert schedule.blocks == [phase1, schedule.blocks[1]] 24 24 assert schedule.current_block == phase1 25 assert schedule.state == "initial"25 assert schedule.state() == "initial" 26 26 27 27 def test_default_json_string(self): … … 48 48 schedule, phase1, _, _ = setup_schedule 49 49 schedule.start() 50 assert schedule.state == "running"50 assert schedule.state() == "running" 51 51 # assert phase1.ticks_left < phase1.initial_ticks # Assuming the phase reduces ticks when started 52 52 … … 54 54 schedule, _, _, _ = setup_schedule 55 55 schedule.start() 56 assert schedule. running() is True56 assert schedule.is_running() is True 57 57 schedule.pause() 58 assert schedule. running() is False58 assert schedule.is_running() is False 59 59 60 60 def test_paused(self, setup_schedule): 61 61 schedule, _, _, _ = setup_schedule 62 62 schedule.pause() 63 assert schedule. paused() is True63 assert schedule.is_paused() is True 64 64 65 65 def test_abort(self, setup_schedule): 66 66 schedule, _, _, _ = setup_schedule 67 67 schedule.abort() 68 assert schedule.state == "aborted"68 assert schedule.state() == "aborted" 69 69 70 70 def test_completed(self, setup_schedule): … … 74 74 schedule.tick(phase1.initial_ticks) # Complete phase1 75 75 schedule.tick(sequence.initial_ticks) # Complete sequence 76 assert schedule. completed() is True77 assert schedule.state == "completed"76 assert schedule.is_completed() is True 77 assert schedule.state() == "completed" 78 78 79 79 def test_advance_to_next_block(self, setup_schedule):
Note:
See TracChangeset
for help on using the changeset viewer.