Skip to content

Commit 63a679d

Browse files
committed
seconds are now incrementing and decrememnting
1 parent 6a1ac36 commit 63a679d

File tree

3 files changed

+102
-4
lines changed

3 files changed

+102
-4
lines changed

forms/ScreenBlockerMenu.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,15 @@ def __init__(self, master, time_options_manager, **kwargs):
99
self._geom = '200x200+0+0'
1010

1111
self.time_options_manager = time_options_manager
12-
self.time_options_manager.subscribe_to_timechange(self.time_change_callback)
1312
self.set_window_properties(master, pad)
1413
self.build_window_content(master)
14+
self.time_options_manager.subscribe_to_timechange(self.time_change_callback)
1515

1616
def time_change_callback(self, time, minutes, seconds):
1717
print(time)
1818
print(minutes)
19-
self.label_minutes['text'] = minutes
19+
self.label_minutes['text'] = "{0:0>2}".format(minutes)
20+
self.label_seconds['text'] = "{0:0>2}".format(seconds)
2021

2122
def set_window_properties(self, master, pad):
2223
master.geometry(self.get_current_window_geomitry(master, pad))
@@ -64,8 +65,10 @@ def build_window_content(self, master):
6465
label_colon = Label(center_frame, text=":", font="Helvetica 180 bold")
6566
label_colon.grid(row=row_index, column=1, sticky=N)
6667

67-
label_seconds = Label(center_frame, text="30", font="Helvetica 180 bold")
68-
label_seconds.grid(row=row_index, column=2, sticky=W)
68+
self.label_seconds = Label(center_frame, text="30", font="Helvetica 180 bold")
69+
self.label_seconds.grid(row=row_index, column=2, sticky=W)
70+
self.label_seconds.bind("<Button-1>", lambda event: self.time_options_manager.increment_seconds())
71+
self.label_seconds.bind("<Button-3>", lambda event: self.time_options_manager.decrement_seconds())
6972
row_index += 1
7073

7174
label_up_next = Label(center_frame, text="Mobber Sit At the Keyboard", font="Helvetica 50 bold")

infrastructure/TimeOptionsManager.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ def decrement_seconds(self):
2525

2626
def subscribe_to_timechange(self, time_change_callback):
2727
self.time_change_callbacks.append(time_change_callback)
28+
self.fire_time_change_callbacks()
2829

2930
def fire_time_change_callbacks(self):
3031
for time_change_callback in self.time_change_callbacks:
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
import unittest
2+
3+
from infrastructure.TimeOptionsManager import TimeOptionsManager
4+
5+
6+
class TestsTimeOptionsManager(unittest.TestCase):
7+
def test_default_time_10_minutes(self):
8+
time_options_manager = TimeOptionsManager()
9+
result = time_options_manager.get_time_string()
10+
self.assertEqual(result, "10:00")
11+
12+
def test_indement_minutes_once_is_11_minutes(self):
13+
time_options_manager = TimeOptionsManager()
14+
time_options_manager.increment_minutes()
15+
result = time_options_manager.get_time_string()
16+
self.assertEqual(result, "11:00")
17+
18+
def test_decriment_minutes_once_is_9_minutes(self):
19+
time_options_manager = TimeOptionsManager()
20+
time_options_manager.decrement_minutes()
21+
result = time_options_manager.get_time_string()
22+
self.assertEqual(result, "09:00")
23+
24+
def test_increment_seconds_once_is_10_minutes_15_seconds(self):
25+
time_options_manager = TimeOptionsManager()
26+
time_options_manager.increment_seconds()
27+
result = time_options_manager.get_time_string()
28+
self.assertEqual(result, "10:15")
29+
30+
def test_increment_seconds_4_times_is_10_minutes(self):
31+
time_options_manager = TimeOptionsManager()
32+
time_options_manager.increment_seconds()
33+
time_options_manager.increment_seconds()
34+
time_options_manager.increment_seconds()
35+
time_options_manager.increment_seconds()
36+
result = time_options_manager.get_time_string()
37+
self.assertEqual(result, "10:00")
38+
39+
def test_decrement_seconds_once_is_10_minutes_45_seconds(self):
40+
time_options_manager = TimeOptionsManager()
41+
time_options_manager.decrement_seconds()
42+
result = time_options_manager.get_time_string()
43+
self.assertEqual(result, "10:45")
44+
45+
def test_decrement_seconds_3_times_is_10_minutes_45_seconds(self):
46+
time_options_manager = TimeOptionsManager()
47+
time_options_manager.decrement_seconds()
48+
time_options_manager.decrement_seconds()
49+
time_options_manager.decrement_seconds()
50+
result = time_options_manager.get_time_string()
51+
self.assertEqual(result, "10:15")
52+
53+
def test_subscribe_to_time_changes(self):
54+
time_options_manager = TimeOptionsManager()
55+
result = { "result" : "time"}
56+
57+
def time_change_callback(time, minutes,seconds):
58+
result["result"] += " " + time
59+
60+
time_options_manager.subscribe_to_timechange(time_change_callback)
61+
62+
time_options_manager.increment_seconds()
63+
64+
self.assertEqual(result["result"], "time 10:15")
65+
66+
def test_subscribe_to_time_changes_complex(self):
67+
time_options_manager = TimeOptionsManager()
68+
result = { "result" : "time"}
69+
70+
def time_change_callback(time, minutes,seconds):
71+
result["result"] += " " + time
72+
73+
time_options_manager.subscribe_to_timechange(time_change_callback)
74+
75+
time_options_manager.increment_seconds()
76+
time_options_manager.increment_seconds()
77+
time_options_manager.increment_seconds()
78+
time_options_manager.decrement_seconds()
79+
time_options_manager.decrement_seconds()
80+
time_options_manager.decrement_seconds()
81+
time_options_manager.decrement_seconds()
82+
time_options_manager.decrement_minutes()
83+
time_options_manager.decrement_minutes()
84+
time_options_manager.increment_minutes()
85+
time_options_manager.increment_minutes()
86+
time_options_manager.increment_minutes()
87+
time_options_manager.increment_minutes()
88+
time_options_manager.increment_minutes()
89+
90+
self.assertEqual(result["result"], "time 10:15 10:30 10:45 10:30 10:15 10:00 10:45 09:45 08:45 09:45 10:45 11:45 12:45 13:45")
91+
92+
93+
if __name__ == '__main__':
94+
unittest.main()

0 commit comments

Comments
 (0)