Skip to content

Commit d915dbd

Browse files
committed
Prepared Countdown Manager for updating transparent countdown UI.
Mobbed with Dustin Franklin and Andrew Vu
1 parent 011b789 commit d915dbd

File tree

6 files changed

+91
-25
lines changed

6 files changed

+91
-25
lines changed

Frames/MobTimerController.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def set_partial_screen_transparent(self):
7373
window_width = int(screenwidth * 0.3)
7474
window_height = int(screenheight * 0.3)
7575
window_size = "{0}x{1}+0+0".format(window_width, window_height)
76-
bottom_left_screen = "+0+{}".format(screenheight - window_height)
76+
bottom_left_screen = "+{}+{}".format(screenwidth - window_width,screenheight - window_height)
7777
controller.geometry(window_size)
7878
controller.geometry(bottom_left_screen)
7979
controller.attributes("-alpha", 0.3)
Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
1-
from tkinter import Frame, Message, Button
1+
from tkinter import *
22

33

44
class TransparentCountdownFrame(Frame):
55
def __init__(self, parent, controller, time_options_manager, mobber_manager, **kwargs):
66
super().__init__(parent, **kwargs)
77
self.master = parent
8-
msg = Message(self, text="hello world")
9-
msg.pack()
108

11-
button = Button(self, text="Dismiss", command=controller.show_screen_blocker_frame)
12-
button.pack()
9+
self.create_frame_content()
10+
11+
def create_frame_content(self):
12+
row_index = 0
13+
self.label_minutes = Label(self, text="10", font="Helvetica 120 bold")
14+
self.label_minutes.grid(row=row_index, column=0, sticky=E)
15+
label_colon = Label(self, text=":", font="Helvetica 120 bold")
16+
label_colon.grid(row=row_index, column=1, sticky=N)
17+
self.label_seconds = Label(self, text="30", font="Helvetica 120 bold")
18+
self.label_seconds.grid(row=row_index, column=2, sticky=W)
19+
row_index += 1
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import unittest
2+
3+
from approvaltests import Approvals
4+
from approvaltests.TextDiffReporter import TextDiffReporter
5+
6+
7+
class CountdownManager(object):
8+
def __init__(self):
9+
self.minutes = 0
10+
self.seconds = 0
11+
self.time_change_callbacks = []
12+
13+
def set_countdown_duration(self, minutes, seconds):
14+
self.minutes = minutes
15+
self.seconds = seconds
16+
self.fire_time_change_callbacks()
17+
18+
def subscribe_to_time_changes(self, time_change_callback):
19+
self.time_change_callbacks.append(time_change_callback)
20+
21+
def fire_time_change_callbacks(self):
22+
for callback in self.time_change_callbacks:
23+
if callback:
24+
callback(self.minutes, self.seconds)
25+
26+
27+
class TestsCountdownManager(unittest.TestCase):
28+
def test_set_countdown_timer(self):
29+
countdown_manager = CountdownManager()
30+
countdown_manager.set_countdown_duration(5, 14)
31+
result = "{}:{}".format(countdown_manager.minutes, countdown_manager.seconds)
32+
self.assertEqual("5:14", result)
33+
34+
def test_new_countdown_timer(self):
35+
countdown_manager = CountdownManager()
36+
result = "{}:{}".format(countdown_manager.minutes, countdown_manager.seconds)
37+
self.assertEqual("0:0", result)
38+
39+
def test_subscribe_to_time_changes(self):
40+
countdown_manager = CountdownManager()
41+
result = {"result": "Times changed to\n", "increment": 0}
42+
43+
def time_change_callback(minutes, seconds):
44+
result["increment"] += 1
45+
result["result"] += "Action " + result["increment"].__str__() + ":"
46+
result["result"] += " {0:0>2}:{1:0>2}".format(minutes, seconds) + "\n"
47+
48+
countdown_manager.subscribe_to_time_changes(time_change_callback)
49+
countdown_manager.set_countdown_duration(4, 42)
50+
countdown_manager.set_countdown_duration(603, 52)
51+
countdown_manager.set_countdown_duration(1, 3)
52+
countdown_manager.set_countdown_duration(853, 32)
53+
countdown_manager.set_countdown_duration(3, 62)
54+
55+
Approvals.verify(result["result"], TextDiffReporter())
56+
57+
58+
if __name__ == '__main__':
59+
unittest.main()

tests/Infrastrcture/CountdownManager/__init__.py

Whitespace-only changes.

tests/Infrastrcture/MobberManager/TestsMobberManager.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,58 +20,58 @@ def test_add_mobber_chris_has_chris(self):
2020

2121
def test_add_mobber_joe_chris_has_joe_chris(self):
2222
mobber_manager = MobberManager()
23-
mobber_manager.add_mobber("Joe")
23+
mobber_manager.add_mobber("Smokey Joe")
2424
mobber_manager.add_mobber("Chris")
25-
result = ["Joe", "Chris"]
25+
result = ["Smokey Joe", "Chris"]
2626
self.assertEqual(mobber_manager.get_mobbers(), result)
2727

2828
def test_add_mobber_joe_chris_joe__remove_joe_has_joe_chris(self):
2929
mobber_manager = MobberManager()
30-
mobber_manager.add_mobber("Joe")
30+
mobber_manager.add_mobber("Smokey Joe")
3131
mobber_manager.add_mobber("Chris")
32-
mobber_manager.add_mobber("Joe")
32+
mobber_manager.add_mobber("Smokey Joe")
3333
mobber_manager.remove_mobber(2)
34-
result = ["Joe", "Chris"]
34+
result = ["Smokey Joe", "Chris"]
3535
self.assertEqual(mobber_manager.get_mobbers(), result)
3636

3737
def test_add_4_mobbers_move_up_middle(self):
3838
mobber_manager = MobberManager()
39-
mobber_manager.add_mobber("Joe")
39+
mobber_manager.add_mobber("Smokey Joe")
4040
mobber_manager.add_mobber("Chris")
4141
mobber_manager.add_mobber("Will")
4242
mobber_manager.add_mobber("Eric")
4343
mobber_manager.move_mobber_up(2)
44-
result = ["Joe", "Will", "Chris", "Eric"]
44+
result = ["Smokey Joe", "Will", "Chris", "Eric"]
4545
self.assertEqual(mobber_manager.get_mobbers(), result)
4646

4747
def test_add_4_mobbers_move_up_top(self):
4848
mobber_manager = MobberManager()
49-
mobber_manager.add_mobber("Joe")
49+
mobber_manager.add_mobber("Smokey Joe")
5050
mobber_manager.add_mobber("Chris")
5151
mobber_manager.add_mobber("Will")
5252
mobber_manager.add_mobber("Eric")
5353
mobber_manager.move_mobber_up(0)
54-
result = ["Eric", "Chris", "Will", "Joe"]
54+
result = ["Eric", "Chris", "Will", "Smokey Joe"]
5555
self.assertEqual(mobber_manager.get_mobbers(), result)
5656

5757
def test_add_4_mobbers_move_down_middle(self):
5858
mobber_manager = MobberManager()
59-
mobber_manager.add_mobber("Joe")
59+
mobber_manager.add_mobber("Smokey Joe")
6060
mobber_manager.add_mobber("Chris")
6161
mobber_manager.add_mobber("Will")
6262
mobber_manager.add_mobber("Eric")
6363
mobber_manager.move_mobber_down(2)
64-
result = ["Joe", "Chris", "Eric", "Will"]
64+
result = ["Smokey Joe", "Chris", "Eric", "Will"]
6565
self.assertEqual(mobber_manager.get_mobbers(), result)
6666

6767
def test_add_4_mobbers_move_down_bottom(self):
6868
mobber_manager = MobberManager()
69-
mobber_manager.add_mobber("Joe")
69+
mobber_manager.add_mobber("Smokey Joe")
7070
mobber_manager.add_mobber("Chris")
7171
mobber_manager.add_mobber("Will")
7272
mobber_manager.add_mobber("Eric")
7373
mobber_manager.move_mobber_down(3)
74-
result = ["Eric", "Chris", "Will", "Joe"]
74+
result = ["Eric", "Chris", "Will", "Smokey Joe"]
7575
self.assertEqual(mobber_manager.get_mobbers(), result)
7676

7777
def test_move_down_empty(self):
@@ -94,7 +94,7 @@ def test_remove_empty(self):
9494

9595
def test_clear(self):
9696
mobber_manager = MobberManager()
97-
mobber_manager.add_mobber("Joe")
97+
mobber_manager.add_mobber("Smokey Joe")
9898
mobber_manager.add_mobber("Chris")
9999
mobber_manager.add_mobber("Sam")
100100
mobber_manager.clear()
@@ -115,7 +115,7 @@ def time_change_callback(mobber_list):
115115

116116
mobber_manager.subscribe_to_mobber_list_change(time_change_callback)
117117

118-
mobber_manager.add_mobber("Joe")
118+
mobber_manager.add_mobber("Smokey Joe")
119119
mobber_manager.add_mobber("Chris")
120120
mobber_manager.add_mobber("Sam")
121121
mobber_manager.remove_mobber(2)

tests/Infrastrcture/MobberManager/tests.Infrastrcture.MobberManager.TestsMobberManager.test_subscribe_to_mobber_list_changes.approved.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
Mobbers in List for Each Change
22
Action 1:
3-
Action 2:Joe,
4-
Action 3:Joe,Chris,
5-
Action 4:Joe,Chris,Sam,
6-
Action 5:Joe,Chris,
3+
Action 2:Smokey Joe,
4+
Action 3:Smokey Joe,Chris,
5+
Action 4:Smokey Joe,Chris,Sam,
6+
Action 5:Smokey Joe,Chris,
77
Action 6:Chris,
88
Action 7:Chris,Seth,
99
Action 8:Seth,Chris,

0 commit comments

Comments
 (0)