source: flowtimer/tests/test_schedule.py@ 729b23d

guix
Last change on this file since 729b23d was 729b23d, checked in by Enrico Schwass <ennoausberlin@…>, 9 months ago

test fixed

  • Property mode set to 100644
File size: 3.2 KB
RevLine 
[401678c]1import pytest
2from flowtimer.Schedule import Schedule
3from flowtimer.Phase import Phase
4
5class TestSchedule:
6
7 def test_schedule_initialization(self):
8 phase1 = Phase("Warm-up", 300)
9 phase2 = Phase("Workout", 600)
10 schedule = Schedule([phase1, phase2])
11
12 assert schedule.phase_list == [phase1, phase2]
13 assert schedule.current_phase == phase1
14 assert schedule.state == "initial"
15 assert schedule.currentValue == 0
16
17 def test_schedule_start(self):
18 phase1 = Phase("Warm-up", 300)
19 schedule = Schedule([phase1])
20 schedule.start()
21
22 assert schedule.state == "running"
23 assert schedule.current_phase.running() is True
24
25 def test_schedule_pause(self):
26 phase1 = Phase("Warm-up", 300)
27 schedule = Schedule([phase1])
28 schedule.start()
29 schedule.pause()
30
31 assert schedule.state == "paused"
32 assert schedule.is_paused() is True
33
34 def test_schedule_abort(self):
35 phase1 = Phase("Warm-up", 300)
36 schedule = Schedule([phase1])
37 schedule.start()
38 schedule.abort()
39
40 assert schedule.state == "finished"
41 assert schedule.current_phase.finished() is True
42
43 def test_schedule_finished(self):
44 phase1 = Phase("Warm-up", 300)
45 phase2 = Phase("Workout", 600)
46 schedule = Schedule([phase1, phase2])
47
48 assert schedule.finished() is False
49
50 phase1.start()
51 phase1.tick(300)
52 assert phase1.finished() is True
53 assert schedule.finished() is False
54
55 schedule.skip()
56 schedule.current_phase.tick(600)
57 assert schedule.finished() is True
58
59 def test_schedule_skip(self):
60 phase1 = Phase("Warm-up", 300)
61 phase2 = Phase("Workout", 600)
62 schedule = Schedule([phase1, phase2])
63
64 schedule.start()
65 schedule.skip()
66
67 assert schedule.current_phase == phase2
68
69 def test_schedule_skip_at_final_phase(self):
70 phase1 = Phase("Warm-up", 300)
71 schedule = Schedule([phase1])
72
73 schedule.start()
74 schedule.skip()
75
76 assert schedule.state == "finished"
77
78 def test_schedule_tick(self):
79 phase1 = Phase("Warm-up", 300)
80 phase2 = Phase("Workout", 600)
81 schedule = Schedule([phase1, phase2])
82
83 schedule.start()
84 schedule.tick(300)
85
86 assert phase1.finished() is True
87 assert schedule.current_phase == phase2
88 assert schedule.state == "running"
89
90 def test_schedule_tick_to_completion(self):
91 phase1 = Phase("Warm-up", 300)
92 phase2 = Phase("Workout", 600)
93 schedule = Schedule([phase1, phase2])
94
95 schedule.start()
96 schedule.tick(300) # Should finish phase1 and move to phase2
97 schedule.tick(600) # Should finish phase2 and complete the schedule
98
99 assert phase2.finished() is True
100 assert schedule.finished() is True
101
102 def test_schedule_current_phase_is_final(self):
103 phase1 = Phase("Warm-up", 300)
104 phase2 = Phase("Workout", 600)
105 schedule = Schedule([phase1, phase2])
106
107 assert schedule.current_phase_is_final() is False
108
109 schedule.skip()
110 assert schedule.current_phase_is_final() is True
111
Note: See TracBrowser for help on using the repository browser.