def test02_get_ring_time(self): playlist = 'Playlist URI' am = AlarmManager() am.set_alarm(datetime.datetime(2055, 4, 28, 7, 59, 15, 324341), playlist, False, 41, 83) self.assertEqual(am.get_ring_time(), '07:59') am.cancel()
def test02_get_ring_time(self): playlist = 'Playlist URI' am = AlarmManager() am.set_alarm(datetime.datetime(2055, 4, 28, 7, 59, 15, 324341), playlist, False, 41, 83) self.assertEqual(am.get_ring_time(), b'07:59') am.cancel()
def test04__integration_1(self): core = mock.Mock() playlist = 'Playlist URI' core.playback.get_state().get.side_effect = lambda: PlaybackState.PLAYING core.playback.get_time_position().get.side_effect = lambda: 234 core.playlists.lookup('Playlist URI').get().tracks = 'Tracks 811, 821, 823, 827, 829, 839' core.tracklist.get_length().get.side_effect = lambda: 4 self.assertEqual(core.playlists.lookup.call_count, 1) # First call when setting up the Mock threadcount = threading.active_count() am = AlarmManager() # Test get_core() self.assertTrue(am is am.get_core(core)) # Test is_set() and threading when NOT set self.assertFalse(am.is_set()) self.assertEqual(threading.active_count(), threadcount) # Set alarm to FAR future am.set_alarm(datetime.datetime(2055, 4, 28, 7, 59, 15, 324341), playlist, False, 41, 83) # Test when set self.assertTrue(am.is_set()) self.assertEqual(threading.active_count(), threadcount + 1) self.assertEqual(am.get_ring_time(), '07:59') self.assertFalse(am.random_mode) self.assertEqual(am.volume, 41) self.assertEqual(am.volume_increase_seconds, 83) # Cancel alarm am.cancel() # Test is_set() and threading when NOT set self.assertFalse(am.is_set()) self.assertEqual(threading.active_count(), threadcount) # Set alarm to NEAR future am.set_alarm(datetime.datetime.now() + datetime.timedelta(seconds=29), playlist, False, 23, 127) # Tests a few seconds BEFORE alarm time.sleep(27) self.assertTrue(am.is_set()) self.assertEqual(threading.active_count(), threadcount + 1) self.assertFalse(am.random_mode) self.assertEqual(am.volume, 23) self.assertEqual(am.volume_increase_seconds, 127) self.assertEqual(core.playlists.lookup.call_count, 1) # First call when setting up the Mock # Cancel alarm am.cancel() # Test is_set() and threading when NOT set self.assertFalse(am.is_set()) self.assertEqual(threading.active_count(), threadcount) # Sleep 20 seconds more to ensure that alarm will start if not cancelled time.sleep(20) # Set alarm to NEAR future am.set_alarm(datetime.datetime.now() + datetime.timedelta(seconds=31), playlist, True, 3, 17) # Test when set self.assertTrue(am.is_set()) self.assertEqual(threading.active_count(), threadcount + 1) self.assertTrue(am.random_mode) self.assertEqual(am.volume, 3) self.assertEqual(am.volume_increase_seconds, 17) # Tests a few seconds BEFORE alarm time.sleep(29) self.assertTrue(am.is_set()) self.assertEqual(threading.active_count(), threadcount + 1) self.assertEqual(core.tracklist.set_consume.call_count, 0) self.assertEqual(core.tracklist.set_single.call_count, 0) self.assertEqual(core.tracklist.set_repeat.call_count, 0) self.assertEqual(core.tracklist.set_random.call_count, 0) self.assertEqual(core.mixer.set_mute.call_count, 0) self.assertEqual(core.mixer.set_volume.call_count, 0) self.assertEqual(core.playback.stop.call_count, 0) self.assertEqual(core.tracklist.clear.call_count, 0) self.assertEqual(core.tracklist.add.call_count, 0) self.assertEqual(core.playback.next.call_count, 0) self.assertEqual(core.playback.play.call_count, 0) self.assertEqual(core.playlists.lookup.call_count, 1) # First call when setting up the Mock # Tests a few seconds AFTER alarm START time.sleep(8) self.assertFalse(am.is_set()) self.assertEqual(threading.active_count(), threadcount + 1) # Additional thread is created by adjust_volume() core.tracklist.set_consume.assert_called_once_with(False) core.tracklist.set_single.assert_called_once_with(False) core.tracklist.set_repeat.assert_called_once_with(True) core.tracklist.set_random.assert_called_once_with(True) core.mixer.set_mute.assert_called_once_with(False) self.assertEqual(core.mixer.set_volume.call_count, 2) core.mixer.set_volume.assert_called_with(1) # First step of gradual volume increasing core.playback.stop.assert_called_once_with() core.tracklist.clear.assert_called_once_with() core.tracklist.add.assert_called_once_with('Tracks 811, 821, 823, 827, 829, 839') core.playback.next.assert_called_once_with() core.playback.play.assert_called_once_with() self.assertEqual(core.playlists.lookup.call_count, 2) # Further tests of gradual volume increasing time.sleep(5.67) # Race conditions already prevented by previous sleep() self.assertEqual(core.mixer.set_volume.call_count, 3) core.mixer.set_volume.assert_called_with(2) self.assertEqual(threading.active_count(), threadcount + 1) time.sleep(5.67) self.assertEqual(core.mixer.set_volume.call_count, 4) core.mixer.set_volume.assert_called_with(2) self.assertEqual(threading.active_count(), threadcount + 1) time.sleep(5.67) self.assertEqual(core.mixer.set_volume.call_count, 5) core.mixer.set_volume.assert_called_with(3) self.assertEqual(threading.active_count(), threadcount) time.sleep(20) # More than 3x increase step time self.assertEqual(core.mixer.set_volume.call_count, 5) core.mixer.set_volume.assert_called_with(3) self.assertEqual(threading.active_count(), threadcount) # Test alarm cancellation after alarm has been started self.assertFalse(am.is_set()) am.cancel() self.assertFalse(am.is_set()) self.assertEqual(threading.active_count(), threadcount) # Set alarm to FAR future am.set_alarm(datetime.datetime(2055, 4, 28, 7, 59, 15, 324341), playlist, False, 41, 83) # Test when set self.assertTrue(am.is_set()) self.assertEqual(threading.active_count(), threadcount + 1) self.assertEqual(am.get_ring_time(), '07:59') self.assertFalse(am.random_mode) self.assertEqual(am.volume, 41) self.assertEqual(am.volume_increase_seconds, 83) # Cancel alarm am.cancel() # Test is_set() and threading when NOT set self.assertFalse(am.is_set()) self.assertEqual(threading.active_count(), threadcount)
def test04__integration_1(self): core = mock.Mock() playlist = 'Playlist URI' core.playlists.lookup('Playlist URI').get().tracks = 'Tracks 811, 821, 823, 827, 829, 839' self.assertEqual(core.playlists.lookup.call_count, 1) # First call when setting up the Mock threadcount = threading.active_count() am = AlarmManager() # Test get_core() self.assertTrue(am is am.get_core(core)) # Test is_set() and threading when NOT set self.assertFalse(am.is_set()) self.assertEqual(threading.active_count(), threadcount) # Set alarm to FAR future am.set_alarm(datetime.datetime(2055, 4, 28, 7, 59, 15, 324341), playlist, False, 41, 83) # Test when set self.assertTrue(am.is_set()) self.assertEqual(threading.active_count(), threadcount + 1) self.assertEqual(am.get_ring_time(), b'07:59') self.assertFalse(am.random_mode) self.assertEqual(am.volume, 41) self.assertEqual(am.volume_increase_seconds, 83) # Cancel alarm am.cancel() # Test is_set() and threading when NOT set self.assertFalse(am.is_set()) self.assertEqual(threading.active_count(), threadcount) # Set alarm to NEAR future am.set_alarm(datetime.datetime.now() + datetime.timedelta(seconds=29), playlist, False, 23, 127) # Tests a few seconds BEFORE alarm time.sleep(27) self.assertTrue(am.is_set()) self.assertEqual(threading.active_count(), threadcount + 1) self.assertFalse(am.random_mode) self.assertEqual(am.volume, 23) self.assertEqual(am.volume_increase_seconds, 127) self.assertEqual(core.playlists.lookup.call_count, 1) # First call when setting up the Mock # Cancel alarm am.cancel() # Test is_set() and threading when NOT set self.assertFalse(am.is_set()) self.assertEqual(threading.active_count(), threadcount) # Sleep 20 seconds more to ensure that alarm will start if not cancelled time.sleep(20) # Set alarm to NEAR future am.set_alarm(datetime.datetime.now() + datetime.timedelta(seconds=31), playlist, True, 3, 17) # Test when set self.assertTrue(am.is_set()) self.assertEqual(threading.active_count(), threadcount + 1) self.assertTrue(am.random_mode) self.assertEqual(am.volume, 3) self.assertEqual(am.volume_increase_seconds, 17) # Tests a few seconds BEFORE alarm time.sleep(29) self.assertTrue(am.is_set()) self.assertEqual(threading.active_count(), threadcount + 1) self.assertIsInstance(core.tracklist.consume, mock.Mock) self.assertIsInstance(core.tracklist.single, mock.Mock) self.assertIsInstance(core.tracklist.repeat, mock.Mock) self.assertIsInstance(core.tracklist.random, mock.Mock) self.assertIsInstance(core.playback.mute, mock.Mock) self.assertIsInstance(core.playback.volume, mock.Mock) self.assertEqual(core.playback.stop.call_count, 0) self.assertEqual(core.tracklist.clear.call_count, 0) self.assertEqual(core.tracklist.add.call_count, 0) self.assertEqual(core.playback.next.call_count, 0) self.assertEqual(core.playback.play.call_count, 0) self.assertEqual(core.playlists.lookup.call_count, 1) # First call when setting up the Mock # Tests a few seconds AFTER alarm START time.sleep(8) self.assertFalse(am.is_set()) self.assertEqual(threading.active_count(), threadcount + 1) # Additional thread is created by adjust_volume() self.assertEqual(core.tracklist.consume, False) self.assertEqual(core.tracklist.single, False) self.assertEqual(core.tracklist.repeat, True) self.assertEqual(core.tracklist.random, True) self.assertEqual(core.playback.mute, False) self.assertEqual(core.playback.volume, 1) # First step of gradual volume increasing core.playback.stop.assert_called_once_with() core.tracklist.clear.assert_called_once_with() core.tracklist.add.assert_called_once_with('Tracks 811, 821, 823, 827, 829, 839') core.playback.next.assert_called_once_with() core.playback.play.assert_called_once_with() self.assertEqual(core.playlists.lookup.call_count, 2) # Further tests of gradual volume increasing time.sleep(5.67) # Race conditions already prevented by previous sleep() self.assertEqual(core.playback.volume, 2) self.assertEqual(threading.active_count(), threadcount + 1) time.sleep(5.67) self.assertEqual(core.playback.volume, 2) self.assertEqual(threading.active_count(), threadcount + 1) time.sleep(5.67) self.assertEqual(core.playback.volume, 3) self.assertEqual(threading.active_count(), threadcount) time.sleep(20) # More than 3x increase step time self.assertEqual(core.playback.volume, 3) self.assertEqual(threading.active_count(), threadcount) # Test alarm cancellation after alarm has been started self.assertFalse(am.is_set()) am.cancel() self.assertFalse(am.is_set()) self.assertEqual(threading.active_count(), threadcount) # Set alarm to FAR future am.set_alarm(datetime.datetime(2055, 4, 28, 7, 59, 15, 324341), playlist, False, 41, 83) # Test when set self.assertTrue(am.is_set()) self.assertEqual(threading.active_count(), threadcount + 1) self.assertEqual(am.get_ring_time(), b'07:59') self.assertFalse(am.random_mode) self.assertEqual(am.volume, 41) self.assertEqual(am.volume_increase_seconds, 83) # Cancel alarm am.cancel() # Test is_set() and threading when NOT set self.assertFalse(am.is_set()) self.assertEqual(threading.active_count(), threadcount)