-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_alarm_controller.py
More file actions
64 lines (44 loc) · 1.97 KB
/
test_alarm_controller.py
File metadata and controls
64 lines (44 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import sys
import unittest
from unittest.mock import MagicMock, patch
class TestAlarmController(unittest.TestCase):
def setUp(self):
# Clear any cached import of alarm_controller between tests
if "alarm_controller" in sys.modules:
del sys.modules["alarm_controller"]
@patch.dict("sys.modules", {"vlc": MagicMock()})
def test_play_starts_video(self):
import alarm_controller
mock_player = MagicMock()
mock_player.is_playing.return_value = 0 # Not currently playing
alarm_controller.vlc.MediaPlayer.return_value = mock_player
controller = alarm_controller.AlarmController("meme.mp4")
controller.play()
mock_player.play.assert_called_once()
@patch.dict("sys.modules", {"vlc": MagicMock()})
def test_stop_stops_and_rewinds(self):
import alarm_controller
mock_player = MagicMock()
alarm_controller.vlc.MediaPlayer.return_value = mock_player
controller = alarm_controller.AlarmController("meme.mp4")
controller.stop()
mock_player.stop.assert_called_once()
@patch.dict("sys.modules", {"vlc": MagicMock()})
def test_is_playing_returns_state(self):
import alarm_controller
mock_player = MagicMock()
mock_player.is_playing.return_value = 1
alarm_controller.vlc.MediaPlayer.return_value = mock_player
controller = alarm_controller.AlarmController("meme.mp4")
self.assertTrue(controller.is_playing())
@patch.dict("sys.modules", {"vlc": MagicMock()})
def test_sets_loop_mode(self):
import alarm_controller
mock_player = MagicMock()
mock_media = MagicMock()
mock_player.get_media.return_value = mock_media
alarm_controller.vlc.MediaPlayer.return_value = mock_player
controller = alarm_controller.AlarmController("meme.mp4")
mock_media.add_option.assert_called_with("input-repeat=65535")
if __name__ == "__main__":
unittest.main()