def test_play_media_wait_state_not_playing(self, mocked_get_vlc, mocked_threading): """ Test the play() method when media_wait_state() returns False """ # GIVEN: A bunch of mocked out things mocked_thread = MagicMock() mocked_threading.Thread.return_value = mocked_thread mocked_vlc = MagicMock() mocked_get_vlc.return_value = mocked_vlc mocked_controller = MagicMock() mocked_controller.media_info.start_time = 0 mocked_display = MagicMock() mocked_display.controller = mocked_controller vlc_player = VlcPlayer(None) vlc_player.set_state(MediaState.Paused, mocked_display) # WHEN: play() is called with patch.object(vlc_player, 'media_state_wait') as mocked_media_state_wait, \ patch.object(vlc_player, 'volume') as mocked_volume: mocked_media_state_wait.return_value = False result = vlc_player.play(mocked_display) # THEN: A thread should be started, but the method should return False mocked_thread.start.assert_called_with() self.assertFalse(result)
def setup_visible_mouse_test(self, MockedSettings, MockedQtGui, mocked_get_vlc, mocked_is_macosx, mocked_is_win): """ Test the setup method when Settings().value("hide mouse") is False """ # GIVEN: A bunch of mocked out stuff and a VlcPlayer object mocked_is_macosx.return_value = False mocked_is_win.return_value = False mocked_settings = MagicMock() mocked_settings.value.return_value = False MockedSettings.return_value = mocked_settings mocked_qframe = MagicMock() mocked_qframe.winId.return_value = 2 MockedQtGui.QFrame.NoFrame = 1 MockedQtGui.QFrame.return_value = mocked_qframe mocked_media_player_new = MagicMock() mocked_instance = MagicMock() mocked_instance.media_player_new.return_value = mocked_media_player_new mocked_vlc = MagicMock() mocked_vlc.Instance.return_value = mocked_instance mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.has_audio = False mocked_display.controller.is_live = True mocked_display.size.return_value = (10, 10) vlc_player = VlcPlayer(None) # WHEN: setup() is run vlc_player.setup(mocked_display) # THEN: The VLC instance should be created with the correct options mocked_vlc.Instance.assert_called_with('--no-video-title-show --no-audio --no-video-title-show')
def play_test(self, mocked_get_vlc, mocked_threading): """ Test the play() method """ # GIVEN: A bunch of mocked out things mocked_thread = MagicMock() mocked_threading.Thread.return_value = mocked_thread mocked_vlc = MagicMock() mocked_get_vlc.return_value = mocked_vlc mocked_controller = MagicMock() mocked_controller.media_info.start_time = 0 mocked_controller.media_info.media_type = MediaType.Video mocked_controller.media_info.volume = 100 mocked_media = MagicMock() mocked_media.get_duration.return_value = 50000 mocked_display = MagicMock() mocked_display.controller = mocked_controller mocked_display.vlc_media_player.get_media.return_value = mocked_media vlc_player = VlcPlayer(None) vlc_player.state = MediaState.Paused # WHEN: play() is called with patch.object(vlc_player, 'media_state_wait') as mocked_media_state_wait, \ patch.object(vlc_player, 'volume') as mocked_volume: mocked_media_state_wait.return_value = True result = vlc_player.play(mocked_display) # THEN: A bunch of things should happen to play the media mocked_thread.start.assert_called_with() self.assertEqual(50, mocked_controller.media_info.length) mocked_volume.assert_called_with(mocked_display, 100) mocked_controller.seek_slider.setMaximum.assert_called_with(50000) self.assertEqual(MediaState.Playing, vlc_player.state) mocked_display.vlc_widget.raise_.assert_called_with() self.assertTrue(result, 'The value returned from play() should be True')
def update_ui_dvd_test(self, mocked_get_vlc): """ Test updating the UI for a CD or DVD """ # GIVEN: A whole bunch of mocks mocked_vlc = MagicMock() mocked_vlc.State.Ended = 1 mocked_get_vlc.return_value = mocked_vlc mocked_controller = MagicMock() mocked_controller.media_info.start_time = 100 mocked_controller.media_info.end_time = 300 mocked_controller.seek_slider.isSliderDown.return_value = False mocked_display = MagicMock() mocked_display.controller = mocked_controller mocked_display.vlc_media.get_state.return_value = 1 mocked_display.vlc_media_player.get_time.return_value = 400000 mocked_display.controller.media_info.media_type = MediaType.DVD vlc_player = VlcPlayer(None) # WHEN: update_ui() is called with patch.object(vlc_player, 'stop') as mocked_stop, \ patch.object(vlc_player, 'set_visible') as mocked_set_visible: vlc_player.update_ui(mocked_display) # THEN: Certain methods should be called mocked_stop.assert_called_with(mocked_display) self.assertEqual(2, mocked_stop.call_count) mocked_display.vlc_media_player.get_time.assert_called_with() mocked_set_visible.assert_called_with(mocked_display, False) mocked_controller.seek_slider.setSliderPosition.assert_called_with(300000) expected_calls = [call(True), call(False)] self.assertEqual(expected_calls, mocked_controller.seek_slider.blockSignals.call_args_list)
def test_update_ui_dvd(self, mocked_get_vlc): """ Test updating the UI for a CD or DVD """ # GIVEN: A whole bunch of mocks mocked_vlc = MagicMock() mocked_vlc.State.Ended = 1 mocked_get_vlc.return_value = mocked_vlc mocked_controller = MagicMock() mocked_controller.media_info.start_time = 100 mocked_controller.media_info.end_time = 300 mocked_controller.seek_slider.isSliderDown.return_value = False mocked_display = MagicMock() mocked_display.controller = mocked_controller mocked_display.vlc_media.get_state.return_value = 1 mocked_display.vlc_media_player.get_time.return_value = 400000 mocked_display.controller.media_info.media_type = MediaType.DVD vlc_player = VlcPlayer(None) # WHEN: update_ui() is called with patch.object(vlc_player, 'stop') as mocked_stop, \ patch.object(vlc_player, 'set_visible') as mocked_set_visible: vlc_player.update_ui(mocked_display) # THEN: Certain methods should be called mocked_stop.assert_called_with(mocked_display) self.assertEqual(2, mocked_stop.call_count) mocked_display.vlc_media_player.get_time.assert_called_with() mocked_set_visible.assert_called_with(mocked_display, False) mocked_controller.seek_slider.setSliderPosition.assert_called_with( 300000) expected_calls = [call(True), call(False)] self.assertEqual( expected_calls, mocked_controller.seek_slider.blockSignals.call_args_list)
def test_setup_windows(MockedQtWidgets, mocked_get_vlc, mocked_is_macosx, mocked_is_win, mock_settings): """ Test the setup method when running on Windows """ # GIVEN: A bunch of mocked out stuff and a VlcPlayer object mocked_is_macosx.return_value = False mocked_is_win.return_value = True mock_settings.value.return_value = False mocked_qframe = MagicMock() mocked_qframe.winId.return_value = 2 MockedQtWidgets.QFrame.NoFrame = 1 MockedQtWidgets.QFrame.return_value = mocked_qframe mocked_media_player_new = MagicMock() mocked_instance = MagicMock() mocked_instance.media_player_new.return_value = mocked_media_player_new mocked_vlc = MagicMock() mocked_vlc.Instance.return_value = mocked_instance mocked_get_vlc.return_value = mocked_vlc mocked_output_display = MagicMock() mocked_controller = MagicMock() mocked_controller.is_live = True mocked_output_display.size.return_value = (10, 10) vlc_player = VlcPlayer(None) # WHEN: setup() is run vlc_player.setup(mocked_output_display, mocked_controller, True) # THEN: set_hwnd should be called mocked_media_player_new.set_hwnd.assert_called_with(2)
def test_setup_has_audio(MockedQtWidgets, mocked_get_vlc, mocked_is_macosx, mocked_is_win, mock_settings): """ Test the setup method when has_audio is True """ # GIVEN: A bunch of mocked out stuff and a VlcPlayer object mocked_is_macosx.return_value = False mocked_is_win.return_value = False mock_settings.value.return_value = '' mocked_qframe = MagicMock() mocked_qframe.winId.return_value = 2 MockedQtWidgets.QFrame.NoFrame = 1 MockedQtWidgets.QFrame.return_value = mocked_qframe mocked_media_player_new = MagicMock() mocked_instance = MagicMock() mocked_instance.media_player_new.return_value = mocked_media_player_new mocked_vlc = MagicMock() mocked_vlc.Instance.return_value = mocked_instance mocked_get_vlc.return_value = mocked_vlc mocked_output_display = MagicMock() mocked_controller = MagicMock() mocked_controller.is_live = True mocked_output_display.size.return_value = (10, 10) vlc_player = VlcPlayer(None) # WHEN: setup() is run vlc_player.setup(mocked_output_display, mocked_controller, True) # THEN: The VLC instance should be created with the correct options mocked_vlc.Instance.assert_called_with('--no-video-title-show ')
def load_test(self, mocked_normcase, mocked_get_vlc): """ Test loading a video into VLC """ # GIVEN: A mocked out get_vlc() method media_path = '/path/to/media.mp4' mocked_normcase.side_effect = lambda x: x mocked_vlc = MagicMock() mocked_get_vlc.return_value = mocked_vlc mocked_controller = MagicMock() mocked_controller.media_info.volume = 100 mocked_controller.media_info.media_type = MediaType.Video mocked_controller.media_info.file_info.absoluteFilePath.return_value = media_path mocked_vlc_media = MagicMock() mocked_media = MagicMock() mocked_media.get_duration.return_value = 10000 mocked_display = MagicMock() mocked_display.controller = mocked_controller mocked_display.vlc_instance.media_new_path.return_value = mocked_vlc_media mocked_display.vlc_media_player.get_media.return_value = mocked_media vlc_player = VlcPlayer(None) # WHEN: A video is loaded into VLC with patch.object(vlc_player, 'volume') as mocked_volume: result = vlc_player.load(mocked_display) # THEN: The video should be loaded mocked_normcase.assert_called_with(media_path) mocked_display.vlc_instance.media_new_path.assert_called_with(media_path) self.assertEqual(mocked_vlc_media, mocked_display.vlc_media) mocked_display.vlc_media_player.set_media.assert_called_with(mocked_vlc_media) mocked_vlc_media.parse.assert_called_with() mocked_volume.assert_called_with(mocked_display, 100) self.assertEqual(10, mocked_controller.media_info.length) self.assertTrue(result)
def setup_osx_test(self, MockedSettings, MockedQtGui, mocked_get_vlc, mocked_is_macosx, mocked_is_win): """ Test the setup method when running on OS X """ # GIVEN: A bunch of mocked out stuff and a VlcPlayer object mocked_is_macosx.return_value = True mocked_is_win.return_value = False mocked_settings = MagicMock() mocked_settings.value.return_value = False MockedSettings.return_value = mocked_settings mocked_qframe = MagicMock() mocked_qframe.winId.return_value = 2 MockedQtGui.QFrame.NoFrame = 1 MockedQtGui.QFrame.return_value = mocked_qframe mocked_media_player_new = MagicMock() mocked_instance = MagicMock() mocked_instance.media_player_new.return_value = mocked_media_player_new mocked_vlc = MagicMock() mocked_vlc.Instance.return_value = mocked_instance mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.has_audio = False mocked_display.controller.is_live = True mocked_display.size.return_value = (10, 10) vlc_player = VlcPlayer(None) # WHEN: setup() is run vlc_player.setup(mocked_display) # THEN: set_nsobject should be called mocked_media_player_new.set_nsobject.assert_called_with(2)
def test_load(mocked_normcase, mocked_get_vlc): """ Test loading a video into VLC """ # GIVEN: A mocked out get_vlc() method media_path = '/path/to/media.mp4' mocked_normcase.side_effect = lambda x: x mocked_vlc = MagicMock() mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_controller = MagicMock() mocked_controller.media_info.volume = 100 mocked_controller.media_info.media_type = MediaType.Video mocked_controller.media_info.file_info.absoluteFilePath.return_value = media_path mocked_vlc_media = MagicMock() mocked_media = MagicMock() mocked_media.get_duration.return_value = 10000 mocked_controller.vlc_instance.media_new_path.return_value = mocked_vlc_media mocked_controller.vlc_media_player.get_media.return_value = mocked_media vlc_player = VlcPlayer(None) # WHEN: A video is loaded into VLC with patch.object(vlc_player, 'volume') as mocked_volume: result = vlc_player.load(mocked_controller, mocked_display, media_path) # THEN: The video should be loaded mocked_normcase.assert_called_with(media_path) mocked_controller.vlc_instance.media_new_path.assert_called_with( media_path) assert mocked_vlc_media == mocked_controller.vlc_media mocked_controller.vlc_media_player.set_media.assert_called_with( mocked_vlc_media) mocked_vlc_media.parse.assert_called_with() mocked_volume.assert_called_with(mocked_controller, 100) assert result is True
def play_media_wait_state_not_playing_test(self, mocked_get_vlc, mocked_threading): """ Test the play() method when media_wait_state() returns False """ # GIVEN: A bunch of mocked out things mocked_thread = MagicMock() mocked_threading.Thread.return_value = mocked_thread mocked_vlc = MagicMock() mocked_get_vlc.return_value = mocked_vlc mocked_controller = MagicMock() mocked_controller.media_info.start_time = 0 mocked_display = MagicMock() mocked_display.controller = mocked_controller vlc_player = VlcPlayer(None) vlc_player.state = MediaState.Paused # WHEN: play() is called with patch.object(vlc_player, 'media_state_wait') as mocked_media_state_wait, \ patch.object(vlc_player, 'volume') as mocked_volume: mocked_media_state_wait.return_value = False result = vlc_player.play(mocked_display) # THEN: A thread should be started, but the method should return False mocked_thread.start.assert_called_with() self.assertFalse(result)
def test_setup_visible_mouse(self, MockedSettings, MockedQtWidgets, mocked_get_vlc, mocked_is_macosx, mocked_is_win): """ Test the setup method when Settings().value("hide mouse") is False """ # GIVEN: A bunch of mocked out stuff and a VlcPlayer object mocked_is_macosx.return_value = False mocked_is_win.return_value = False mocked_settings = MagicMock() mocked_settings.value.return_value = False MockedSettings.return_value = mocked_settings mocked_qframe = MagicMock() mocked_qframe.winId.return_value = 2 MockedQtWidgets.QFrame.NoFrame = 1 MockedQtWidgets.QFrame.return_value = mocked_qframe mocked_media_player_new = MagicMock() mocked_instance = MagicMock() mocked_instance.media_player_new.return_value = mocked_media_player_new mocked_vlc = MagicMock() mocked_vlc.Instance.return_value = mocked_instance mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.has_audio = False mocked_display.controller.is_live = True mocked_display.size.return_value = (10, 10) vlc_player = VlcPlayer(None) # WHEN: setup() is run vlc_player.setup(mocked_display) # THEN: The VLC instance should be created with the correct options mocked_vlc.Instance.assert_called_with( '--no-video-title-show --no-audio --no-video-title-show')
def test_setup_osx(self, MockedSettings, MockedQtWidgets, mocked_get_vlc, mocked_is_macosx, mocked_is_win): """ Test the setup method when running on OS X """ # GIVEN: A bunch of mocked out stuff and a VlcPlayer object mocked_is_macosx.return_value = True mocked_is_win.return_value = False mocked_settings = MagicMock() mocked_settings.value.return_value = False MockedSettings.return_value = mocked_settings mocked_qframe = MagicMock() mocked_qframe.winId.return_value = 2 MockedQtWidgets.QFrame.NoFrame = 1 MockedQtWidgets.QFrame.return_value = mocked_qframe mocked_media_player_new = MagicMock() mocked_instance = MagicMock() mocked_instance.media_player_new.return_value = mocked_media_player_new mocked_vlc = MagicMock() mocked_vlc.Instance.return_value = mocked_instance mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.has_audio = False mocked_display.controller.is_live = True mocked_display.size.return_value = (10, 10) vlc_player = VlcPlayer(None) # WHEN: setup() is run vlc_player.setup(mocked_display) # THEN: set_nsobject should be called mocked_media_player_new.set_nsobject.assert_called_with(2)
def test_check_available(mocked_get_vlc): """ Check that when the "vlc" module is available, then VLC is set as available """ # GIVEN: A mocked out get_vlc() method and a VlcPlayer instance mocked_get_vlc.return_value = MagicMock() vlc_player = VlcPlayer(None) # WHEN: vlc is_available = vlc_player.check_available() # THEN: VLC should be available assert is_available is True
def check_not_available_test(self, mocked_get_vlc): """ Check that when the "vlc" module is not available, then VLC is set as unavailable """ # GIVEN: A mocked out get_vlc() method and a VlcPlayer instance mocked_get_vlc.return_value = None vlc_player = VlcPlayer(None) # WHEN: vlc is_available = vlc_player.check_available() # THEN: VLC should NOT be available self.assertFalse(is_available)
def test_check_available(self, mocked_get_vlc): """ Check that when the "vlc" module is available, then VLC is set as available """ # GIVEN: A mocked out get_vlc() method and a VlcPlayer instance mocked_get_vlc.return_value = MagicMock() vlc_player = VlcPlayer(None) # WHEN: vlc is_available = vlc_player.check_available() # THEN: VLC should be available self.assertTrue(is_available)
def test_check_not_available(self, mocked_get_vlc): """ Check that when the "vlc" module is not available, then VLC is set as unavailable """ # GIVEN: A mocked out get_vlc() method and a VlcPlayer instance mocked_get_vlc.return_value = None vlc_player = VlcPlayer(None) # WHEN: vlc is_available = vlc_player.check_available() # THEN: VLC should NOT be available self.assertFalse(is_available)
def test_volume_no_audio(self): """ Test setting the volume when there's no audio """ # GIVEN: A display object and a VlcPlayer instance mocked_display = MagicMock() mocked_display.has_audio = False vlc_player = VlcPlayer(None) # WHEN: The volume is set vlc_player.volume(mocked_display, 10) # THEN: The volume should NOT have been set assert 0 == mocked_display.vlc_media_player.audio_set_volume.call_count
def set_visible_has_own_widget_test(self): """ Test the set_visible() method when the player has its own widget """ # GIVEN: Some mocked out stuff mocked_display = MagicMock() vlc_player = VlcPlayer(None) vlc_player.has_own_widget = True # WHEN: reset() is called vlc_player.set_visible(mocked_display, True) # THEN: The media should be stopped and invsibile mocked_display.vlc_widget.setVisible.assert_called_with(True)
def test_volume(self): """ Test setting the volume """ # GIVEN: A display object and a VlcPlayer instance mocked_display = MagicMock() mocked_display.has_audio = True vlc_player = VlcPlayer(None) # WHEN: The volume is set vlc_player.volume(mocked_display, 10) # THEN: The volume should have been set mocked_display.vlc_media_player.audio_set_volume.assert_called_with(10)
def volume_no_audio_test(self): """ Test setting the volume when there's no audio """ # GIVEN: A display object and a VlcPlayer instance mocked_display = MagicMock() mocked_display.has_audio = False vlc_player = VlcPlayer(None) # WHEN: The volume is set vlc_player.volume(mocked_display, 10) # THEN: The volume should NOT have been set self.assertEqual(0, mocked_display.vlc_media_player.audio_set_volume.call_count)
def volume_test(self): """ Test setting the volume """ # GIVEN: A display object and a VlcPlayer instance mocked_display = MagicMock() mocked_display.has_audio = True vlc_player = VlcPlayer(None) # WHEN: The volume is set vlc_player.volume(mocked_display, 10) # THEN: The volume should have been set mocked_display.vlc_media_player.audio_set_volume.assert_called_with(10)
def test_set_visible_no_widget(self): """ Test the set_visible() method when the player doesn't have a widget """ # GIVEN: Some mocked out stuff mocked_display = MagicMock() vlc_player = VlcPlayer(None) vlc_player.has_own_widget = False # WHEN: reset() is called vlc_player.set_visible(mocked_display, True) # THEN: The media should be stopped and invsibile self.assertEqual(0, mocked_display.vlc_widget.setVisible.call_count)
def test_set_visible_has_own_widget(self): """ Test the set_visible() method when the player has its own widget """ # GIVEN: Some mocked out stuff mocked_display = MagicMock() vlc_player = VlcPlayer(None) vlc_player.has_own_widget = True # WHEN: reset() is called vlc_player.set_visible(mocked_display, True) # THEN: The media should be stopped and invsibile mocked_display.vlc_widget.setVisible.assert_called_with(True)
def set_visible_no_widget_test(self): """ Test the set_visible() method when the player doesn't have a widget """ # GIVEN: Some mocked out stuff mocked_display = MagicMock() vlc_player = VlcPlayer(None) vlc_player.has_own_widget = False # WHEN: reset() is called vlc_player.set_visible(mocked_display, True) # THEN: The media should be stopped and invsibile self.assertEqual(0, mocked_display.vlc_widget.setVisible.call_count)
def test_resize(self): """ Test resizing the player """ # GIVEN: A display object and a VlcPlayer instance mocked_display = MagicMock() mocked_display.size.return_value = (10, 10) vlc_player = VlcPlayer(None) # WHEN: resize is called vlc_player.resize(mocked_display) # THEN: The right methods should have been called mocked_display.size.assert_called_with() mocked_display.vlc_widget.resize.assert_called_with((10, 10))
def get_info_test(self, mocked_translate): """ Test that get_info() returns some information about the VLC player """ # GIVEN: A VlcPlayer mocked_translate.side_effect = lambda *x: x[1] vlc_player = VlcPlayer(None) # WHEN: get_info() is run info = vlc_player.get_info() # THEN: The information should be correct self.assertEqual('VLC is an external player which supports a number of different formats.<br/> ' '<strong>Audio</strong><br/>' + str(AUDIO_EXT) + '<br/><strong>Video</strong><br/>' + str(VIDEO_EXT) + '<br/>', info)
def test_get_info(self, mocked_translate): """ Test that get_info() returns some information about the VLC player """ # GIVEN: A VlcPlayer mocked_translate.side_effect = lambda *x: x[1] vlc_player = VlcPlayer(None) # WHEN: get_info() is run info = vlc_player.get_info() # THEN: The information should be correct assert 'VLC is an external player which supports a number of different formats.<br/> ' \ '<strong>Audio</strong><br/>' + str(AUDIO_EXT) + '<br/><strong>Video</strong><br/>' + \ str(VIDEO_EXT) + '<br/>' == info
def test_reset(self): """ Test the reset() method """ # GIVEN: Some mocked out stuff mocked_display = MagicMock() vlc_player = VlcPlayer(None) # WHEN: reset() is called vlc_player.reset(mocked_display) # THEN: The media should be stopped and invisible mocked_display.vlc_media_player.stop.assert_called_with() mocked_display.vlc_widget.setVisible.assert_called_with(False) self.assertEqual(MediaState.Off, vlc_player.get_live_state())
def resize_test(self): """ Test resizing the player """ # GIVEN: A display object and a VlcPlayer instance mocked_display = MagicMock() mocked_display.size.return_value = (10, 10) vlc_player = VlcPlayer(None) # WHEN: resize is called vlc_player.resize(mocked_display) # THEN: The right methods should have been called mocked_display.size.assert_called_with() mocked_display.vlc_widget.resize.assert_called_with((10, 10))
def reset_test(self): """ Test the reset() method """ # GIVEN: Some mocked out stuff mocked_display = MagicMock() vlc_player = VlcPlayer(None) # WHEN: reset() is called vlc_player.reset(mocked_display) # THEN: The media should be stopped and invsibile mocked_display.vlc_media_player.stop.assert_called_with() mocked_display.vlc_widget.setVisible.assert_called_with(False) self.assertEqual(MediaState.Off, vlc_player.state)
def test_seek_unseekable_media(): """ Test seeking something that can't be seeked """ # GIVEN: Unseekable media mocked_display = MagicMock() mocked_display.controller.media_info.media_type = MediaType.Audio mocked_display.vlc_media_player.is_seekable.return_value = False vlc_player = VlcPlayer(None) # WHEN: seek() is called vlc_player.seek(mocked_display, 100) # THEN: nothing should happen mocked_display.vlc_media_player.is_seekable.assert_called_with() assert 0 == mocked_display.vlc_media_player.set_time.call_count
def test_resize(): """ Test resizing the player """ # GIVEN: A display object and a VlcPlayer instance mocked_controller = MagicMock() mocked_controller.preview_display.size.return_value = (10, 10) mocked_controller.is_live = False vlc_player = VlcPlayer(None) # WHEN: resize is called vlc_player.resize(mocked_controller) # THEN: The right methods should have been called mocked_controller.preview_display.size.assert_called_with() mocked_controller.vlc_widget.resize.assert_called_with((10, 10))
def seek_unseekable_media_test(self): """ Test seeking something that can't be seeked """ # GIVEN: Unseekable media mocked_display = MagicMock() mocked_display.controller.media_info.media_type = MediaType.Audio mocked_display.vlc_media_player.is_seekable.return_value = False vlc_player = VlcPlayer(None) # WHEN: seek() is called vlc_player.seek(mocked_display, 100) # THEN: nothing should happen mocked_display.vlc_media_player.is_seekable.assert_called_with() self.assertEqual(0, mocked_display.vlc_media_player.set_time.call_count)
def test_seek_seekable_media(self): """ Test seeking something that is seekable, but not a DVD """ # GIVEN: Unseekable media mocked_display = MagicMock() mocked_display.controller.media_info.media_type = MediaType.Audio mocked_display.vlc_media_player.is_seekable.return_value = True vlc_player = VlcPlayer(None) # WHEN: seek() is called vlc_player.seek(mocked_display, 100) # THEN: nothing should happen mocked_display.vlc_media_player.is_seekable.assert_called_with() mocked_display.vlc_media_player.set_time.assert_called_with(100)
def seek_seekable_media_test(self): """ Test seeking something that is seekable, but not a DVD """ # GIVEN: Unseekable media mocked_display = MagicMock() mocked_display.controller.media_info.media_type = MediaType.Audio mocked_display.vlc_media_player.is_seekable.return_value = True vlc_player = VlcPlayer(None) # WHEN: seek() is called vlc_player.seek(mocked_display, 100) # THEN: nothing should happen mocked_display.vlc_media_player.is_seekable.assert_called_with() mocked_display.vlc_media_player.set_time.assert_called_with(100)
def test_setup(self, MockedSettings, MockedQtWidgets, mocked_get_vlc, mocked_is_macosx, mocked_is_win): """ Test the setup method """ # GIVEN: A bunch of mocked out stuff and a VlcPlayer object mocked_is_macosx.return_value = False mocked_is_win.return_value = False mocked_settings = MagicMock() mocked_settings.value.return_value = True MockedSettings.return_value = mocked_settings mocked_qframe = MagicMock() mocked_qframe.winId.return_value = 2 MockedQtWidgets.QFrame.NoFrame = 1 MockedQtWidgets.QFrame.return_value = mocked_qframe mocked_media_player_new = MagicMock() mocked_instance = MagicMock() mocked_instance.media_player_new.return_value = mocked_media_player_new mocked_vlc = MagicMock() mocked_vlc.Instance.return_value = mocked_instance mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.has_audio = False mocked_display.controller.is_live = True mocked_display.size.return_value = (10, 10) vlc_player = VlcPlayer(None) # WHEN: setup() is run vlc_player.setup(mocked_display) # THEN: The VLC widget should be set up correctly self.assertEqual(mocked_display.vlc_widget, mocked_qframe) mocked_qframe.setFrameStyle.assert_called_with(1) mocked_settings.value.assert_called_with('advanced/hide mouse') mocked_vlc.Instance.assert_called_with( '--no-video-title-show --no-audio --no-video-title-show ' '--mouse-hide-timeout=0') self.assertEqual(mocked_display.vlc_instance, mocked_instance) mocked_instance.media_player_new.assert_called_with() self.assertEqual(mocked_display.vlc_media_player, mocked_media_player_new) mocked_display.size.assert_called_with() mocked_qframe.resize.assert_called_with((10, 10)) mocked_qframe.raise_.assert_called_with() mocked_qframe.hide.assert_called_with() mocked_media_player_new.set_xwindow.assert_called_with(2) self.assertTrue(vlc_player.has_own_widget)
def test_load_audio_cd_no_tracks(mocked_normcase, mocked_get_vlc, mocked_is_win): """ Test loading an audio CD that has no tracks into VLC """ # GIVEN: A mocked out get_vlc() method mocked_is_win.return_value = False media_path = '/dev/sr0' mocked_normcase.side_effect = lambda x: x mocked_vlc = MagicMock() mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_controller = MagicMock() mocked_controller.media_info.volume = 100 mocked_controller.media_info.media_type = MediaType.CD mocked_controller.media_info.file_info.absoluteFilePath.return_value = media_path mocked_controller.media_info.title_track = 1 mocked_vlc_media = MagicMock() mocked_vlc_media_player = MagicMock() mocked_controller.vlc_media = mocked_vlc_media mocked_controller.vlc_media_player = mocked_vlc_media_player mocked_media = MagicMock() mocked_media.get_duration.return_value = 10000 mocked_controller.vlc_instance.media_new_location.return_value = mocked_vlc_media mocked_controller.vlc_media_player.get_media.return_value = mocked_media mocked_subitems = MagicMock() mocked_subitems.count.return_value = 0 mocked_subitems.item_at_index.return_value = mocked_vlc_media mocked_vlc_media.subitems.return_value = mocked_subitems vlc_player = VlcPlayer(None) # WHEN: An audio CD is loaded into VLC with patch.object(vlc_player, 'volume'), patch.object(vlc_player, 'media_state_wait'): result = vlc_player.load(mocked_controller, mocked_display, media_path) # THEN: The video should be loaded mocked_normcase.assert_called_with(media_path) mocked_controller.vlc_instance.media_new_location.assert_called_with( 'cdda://' + media_path) assert mocked_vlc_media == mocked_controller.vlc_media assert 0 == mocked_subitems.item_at_index.call_count mocked_controller.vlc_media_player.set_media.assert_called_with( mocked_vlc_media) assert 0 == mocked_vlc_media.parse.call_count assert result is False
def test_seek_dvd(self): """ Test seeking a DVD """ # GIVEN: Unseekable media mocked_display = MagicMock() mocked_display.controller.media_info.media_type = MediaType.DVD mocked_display.vlc_media_player.is_seekable.return_value = True mocked_display.controller.media_info.start_time = 3 vlc_player = VlcPlayer(None) # WHEN: seek() is called vlc_player.seek(mocked_display, 2000) # THEN: nothing should happen mocked_display.vlc_media_player.is_seekable.assert_called_with() mocked_display.vlc_media_player.set_time.assert_called_with(5000)
def seek_dvd_test(self): """ Test seeking a DVD """ # GIVEN: Unseekable media mocked_display = MagicMock() mocked_display.controller.media_info.media_type = MediaType.DVD mocked_display.vlc_media_player.is_seekable.return_value = True mocked_display.controller.media_info.start_time = 3 vlc_player = VlcPlayer(None) # WHEN: seek() is called vlc_player.seek(mocked_display, 2000) # THEN: nothing should happen mocked_display.vlc_media_player.is_seekable.assert_called_with() mocked_display.vlc_media_player.set_time.assert_called_with(5000)
def load_audio_cd_on_windows_test(self, mocked_normcase, mocked_get_vlc, mocked_is_win): """ Test loading an audio CD into VLC on Windows """ # GIVEN: A mocked out get_vlc() method mocked_is_win.return_value = True media_path = '/dev/sr0' mocked_normcase.side_effect = lambda x: x mocked_vlc = MagicMock() mocked_get_vlc.return_value = mocked_vlc mocked_controller = MagicMock() mocked_controller.media_info.volume = 100 mocked_controller.media_info.media_type = MediaType.CD mocked_controller.media_info.file_info.absoluteFilePath.return_value = media_path mocked_controller.media_info.title_track = 1 mocked_vlc_media = MagicMock() mocked_media = MagicMock() mocked_media.get_duration.return_value = 10000 mocked_display = MagicMock() mocked_display.controller = mocked_controller mocked_display.vlc_instance.media_new_location.return_value = mocked_vlc_media mocked_display.vlc_media_player.get_media.return_value = mocked_media mocked_subitems = MagicMock() mocked_subitems.count.return_value = 1 mocked_subitems.item_at_index.return_value = mocked_vlc_media mocked_vlc_media.subitems.return_value = mocked_subitems vlc_player = VlcPlayer(None) # WHEN: An audio CD is loaded into VLC with patch.object(vlc_player, 'volume') as mocked_volume, \ patch.object(vlc_player, 'media_state_wait') as mocked_media_state_wait: result = vlc_player.load(mocked_display) # THEN: The video should be loaded mocked_normcase.assert_called_with(media_path) mocked_display.vlc_instance.media_new_location.assert_called_with( 'cdda:///' + media_path) self.assertEqual(mocked_vlc_media, mocked_display.vlc_media) mocked_display.vlc_media_player.set_media.assert_called_with( mocked_vlc_media) mocked_vlc_media.parse.assert_called_with() mocked_volume.assert_called_with(mocked_display, 100) self.assertEqual(10, mocked_controller.media_info.length) self.assertTrue(result)
def pause_not_playing_test(self, mocked_get_vlc): """ Test the pause method when the player is not playing """ # GIVEN: A mocked out get_vlc method mocked_vlc = MagicMock() mocked_vlc.State.Playing = 1 mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.vlc_media.get_state.return_value = 2 vlc_player = VlcPlayer(None) # WHEN: The media is paused vlc_player.pause(mocked_display) # THEN: The pause method should exit early mocked_display.vlc_media.get_state.assert_called_with() self.assertEqual(0, mocked_display.vlc_media_player.pause.call_count)
def test_pause_not_playing(self, mocked_get_vlc): """ Test the pause method when the player is not playing """ # GIVEN: A mocked out get_vlc method mocked_vlc = MagicMock() mocked_vlc.State.Playing = 1 mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.vlc_media.get_state.return_value = 2 vlc_player = VlcPlayer(None) # WHEN: The media is paused vlc_player.pause(mocked_display) # THEN: The pause method should exit early mocked_display.vlc_media.get_state.assert_called_with() self.assertEqual(0, mocked_display.vlc_media_player.pause.call_count)
def setup_test(self, MockedSettings, MockedQtGui, mocked_get_vlc, mocked_is_macosx, mocked_is_win): """ Test the setup method """ # GIVEN: A bunch of mocked out stuff and a VlcPlayer object mocked_is_macosx.return_value = False mocked_is_win.return_value = False mocked_settings = MagicMock() mocked_settings.value.return_value = True MockedSettings.return_value = mocked_settings mocked_qframe = MagicMock() mocked_qframe.winId.return_value = 2 MockedQtGui.QFrame.NoFrame = 1 MockedQtGui.QFrame.return_value = mocked_qframe mocked_media_player_new = MagicMock() mocked_instance = MagicMock() mocked_instance.media_player_new.return_value = mocked_media_player_new mocked_vlc = MagicMock() mocked_vlc.Instance.return_value = mocked_instance mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.has_audio = False mocked_display.controller.is_live = True mocked_display.size.return_value = (10, 10) vlc_player = VlcPlayer(None) # WHEN: setup() is run vlc_player.setup(mocked_display) # THEN: The VLC widget should be set up correctly self.assertEqual(mocked_display.vlc_widget, mocked_qframe) mocked_qframe.setFrameStyle.assert_called_with(1) mocked_settings.value.assert_called_with('advanced/hide mouse') mocked_vlc.Instance.assert_called_with('--no-video-title-show --no-audio --no-video-title-show ' '--mouse-hide-timeout=0') self.assertEqual(mocked_display.vlc_instance, mocked_instance) mocked_instance.media_player_new.assert_called_with() self.assertEqual(mocked_display.vlc_media_player, mocked_media_player_new) mocked_display.size.assert_called_with() mocked_qframe.resize.assert_called_with((10, 10)) mocked_qframe.raise_.assert_called_with() mocked_qframe.hide.assert_called_with() mocked_media_player_new.set_xwindow.assert_called_with(2) self.assertTrue(vlc_player.has_own_widget)
def stop_test(self, mocked_threading): """ Test stopping the current item """ # GIVEN: A display object and a VlcPlayer instance and some mocked threads mocked_thread = MagicMock() mocked_threading.Thread.return_value = mocked_thread mocked_stop = MagicMock() mocked_display = MagicMock() mocked_display.vlc_media_player.stop = mocked_stop vlc_player = VlcPlayer(None) # WHEN: stop is called vlc_player.stop(mocked_display) # THEN: A thread should have been started to stop VLC mocked_threading.Thread.assert_called_with(target=mocked_stop) mocked_thread.start.assert_called_with() self.assertEqual(MediaState.Stopped, vlc_player.state)
def test_stop(self, mocked_threading): """ Test stopping the current item """ # GIVEN: A display object and a VlcPlayer instance and some mocked threads mocked_thread = MagicMock() mocked_threading.Thread.return_value = mocked_thread mocked_stop = MagicMock() mocked_display = MagicMock() mocked_display.vlc_media_player.stop = mocked_stop vlc_player = VlcPlayer(None) # WHEN: stop is called vlc_player.stop(mocked_display) # THEN: A thread should have been started to stop VLC mocked_threading.Thread.assert_called_with(target=mocked_stop) mocked_thread.start.assert_called_with() self.assertEqual(MediaState.Stopped, vlc_player.get_live_state())
def test_setup(MockedQtWidgets, mocked_get_vlc, mocked_is_macosx, mocked_is_win, mock_settings): """ Test the setup method """ # GIVEN: A bunch of mocked out stuff and a VlcPlayer object mocked_is_macosx.return_value = False mocked_is_win.return_value = False mock_settings.value.return_value = '' mocked_qframe = MagicMock() mocked_qframe.winId.return_value = 2 MockedQtWidgets.QFrame.NoFrame = 1 MockedQtWidgets.QFrame.return_value = mocked_qframe mocked_media_player_new = MagicMock() mocked_instance = MagicMock() mocked_instance.media_player_new.return_value = mocked_media_player_new mocked_vlc = MagicMock() mocked_vlc.Instance.return_value = mocked_instance mocked_get_vlc.return_value = mocked_vlc mocked_output_display = MagicMock() mocked_controller = MagicMock() mocked_controller.is_live = True mocked_output_display.size.return_value = (10, 10) vlc_player = VlcPlayer(None) # WHEN: setup() is run vlc_player.setup(mocked_output_display, mocked_controller, True) # THEN: The VLC widget should be set up correctly assert mocked_output_display.vlc_widget == mocked_qframe mocked_qframe.setFrameStyle.assert_called_with(1) mock_settings.value.assert_any_call('advanced/hide mouse') mock_settings.value.assert_any_call('media/vlc arguments') mocked_vlc.Instance.assert_called_with('--no-video-title-show ') assert mocked_output_display.vlc_instance == mocked_instance mocked_instance.media_player_new.assert_called_with() assert mocked_output_display.vlc_media_player == mocked_media_player_new mocked_output_display.size.assert_called_with() mocked_qframe.resize.assert_called_with((10, 10)) mocked_qframe.raise_.assert_called_with() mocked_qframe.hide.assert_called_with() mocked_media_player_new.set_xwindow.assert_called_with(2) assert vlc_player.has_own_widget is True
def load_audio_cd_on_windows_test(self, mocked_normcase, mocked_get_vlc, mocked_is_win): """ Test loading an audio CD into VLC on Windows """ # GIVEN: A mocked out get_vlc() method mocked_is_win.return_value = True media_path = '/dev/sr0' mocked_normcase.side_effect = lambda x: x mocked_vlc = MagicMock() mocked_get_vlc.return_value = mocked_vlc mocked_controller = MagicMock() mocked_controller.media_info.volume = 100 mocked_controller.media_info.media_type = MediaType.CD mocked_controller.media_info.file_info.absoluteFilePath.return_value = media_path mocked_controller.media_info.title_track = 1 mocked_vlc_media = MagicMock() mocked_media = MagicMock() mocked_media.get_duration.return_value = 10000 mocked_display = MagicMock() mocked_display.controller = mocked_controller mocked_display.vlc_instance.media_new_location.return_value = mocked_vlc_media mocked_display.vlc_media_player.get_media.return_value = mocked_media mocked_subitems = MagicMock() mocked_subitems.count.return_value = 1 mocked_subitems.item_at_index.return_value = mocked_vlc_media mocked_vlc_media.subitems.return_value = mocked_subitems vlc_player = VlcPlayer(None) # WHEN: An audio CD is loaded into VLC with patch.object(vlc_player, 'volume') as mocked_volume, \ patch.object(vlc_player, 'media_state_wait') as mocked_media_state_wait: result = vlc_player.load(mocked_display) # THEN: The video should be loaded mocked_normcase.assert_called_with(media_path) mocked_display.vlc_instance.media_new_location.assert_called_with('cdda:///' + media_path) self.assertEqual(mocked_vlc_media, mocked_display.vlc_media) mocked_display.vlc_media_player.set_media.assert_called_with(mocked_vlc_media) mocked_vlc_media.parse.assert_called_with() mocked_volume.assert_called_with(mocked_display, 100) self.assertEqual(10, mocked_controller.media_info.length) self.assertTrue(result)
def media_state_wait_error_test(self, mocked_get_vlc): """ Check that getting an error when waiting for a state change returns False """ # GIVEN: A mocked out get_vlc method mocked_vlc = MagicMock() mocked_vlc.State.Error = 1 mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.vlc_media.get_state.return_value = 1 Registry.create() mocked_application = MagicMock() Registry().register('application', mocked_application) vlc_player = VlcPlayer(None) # WHEN: media_state_wait() is called result = vlc_player.media_state_wait(mocked_display, 2) # THEN: The results should be True self.assertFalse(result)
def test_media_state_wait_error(self, mocked_get_vlc): """ Check that getting an error when waiting for a state change returns False """ # GIVEN: A mocked out get_vlc method mocked_vlc = MagicMock() mocked_vlc.State.Error = 1 mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.vlc_media.get_state.return_value = 1 Registry.create() mocked_application = MagicMock() Registry().register('application', mocked_application) vlc_player = VlcPlayer(None) # WHEN: media_state_wait() is called result = vlc_player.media_state_wait(mocked_display, 2) # THEN: The results should be True self.assertFalse(result)
def play_dvd_test(self, mocked_get_vlc, mocked_threading): """ Test the play() method with a DVD """ # GIVEN: A bunch of mocked out things mocked_thread = MagicMock() mocked_threading.Thread.return_value = mocked_thread mocked_vlc = MagicMock() mocked_get_vlc.return_value = mocked_vlc mocked_controller = MagicMock() mocked_controller.media_info.start_time = 0 mocked_controller.media_info.end_time = 50 mocked_controller.media_info.media_type = MediaType.DVD mocked_controller.media_info.volume = 100 mocked_controller.media_info.title_track = 1 mocked_controller.media_info.audio_track = 1 mocked_controller.media_info.subtitle_track = 1 mocked_display = MagicMock() mocked_display.controller = mocked_controller vlc_player = VlcPlayer(None) vlc_player.state = MediaState.Paused # WHEN: play() is called with patch.object(vlc_player, 'media_state_wait') as mocked_media_state_wait, \ patch.object(vlc_player, 'volume') as mocked_volume: mocked_media_state_wait.return_value = True result = vlc_player.play(mocked_display) # THEN: A bunch of things should happen to play the media mocked_thread.start.assert_called_with() mocked_display.vlc_media_player.set_title.assert_called_with(1) mocked_display.vlc_media_player.play.assert_called_with() mocked_display.vlc_media_player.audio_set_track.assert_called_with(1) mocked_display.vlc_media_player.video_set_spu.assert_called_with(1) self.assertEqual(50, mocked_controller.media_info.length) mocked_volume.assert_called_with(mocked_display, 100) mocked_controller.seek_slider.setMaximum.assert_called_with(50000) self.assertEqual(MediaState.Playing, vlc_player.state) mocked_display.vlc_widget.raise_.assert_called_with() self.assertTrue(result, 'The value returned from play() should be True')
def bootstrap_initialise(self): """ Check to see if we have any media Player's available. """ self.setup() self.vlc_player = VlcPlayer(self) State().add_service('mediacontroller', 0) State().add_service('media_live', 0) has_vlc = get_vlc() if has_vlc and pymediainfo_available: State().update_pre_conditions('mediacontroller', True) State().update_pre_conditions('media_live', True) else: if hasattr(self.main_window, 'splash') and self.main_window.splash.isVisible(): self.main_window.splash.hide() generic_message = translate( 'OpenLP.MediaController', 'OpenLP requires the following libraries in order to show videos and other ' 'media, but they are not installed. Please install these libraries to enable ' 'media playback in OpenLP.') fedora_rpmfusion = translate( 'OpenLP.MediaController', 'To install these libraries, you will need to enable the RPMFusion ' 'repository: https://rpmfusion.org/') if is_macosx(): message = translate( 'OpenLP.MediaController', 'macOS is missing VLC. Please download and install from the VLC web site: ' 'https://www.videolan.org/vlc/') else: packages = [] if not has_vlc: packages.append('python3-vlc') if not pymediainfo_available: packages.append('python3-pymediainfo') message = generic_message + '\n\n' + ', '.join(packages) if not has_vlc and is_linux(distro='fedora'): message += '\n\n' + fedora_rpmfusion State().missing_text('media_live', message) return True
def test_play(self, mocked_get_vlc, mocked_threading): """ Test the play() method """ # GIVEN: A bunch of mocked out things mocked_thread = MagicMock() mocked_threading.Thread.return_value = mocked_thread mocked_vlc = MagicMock() mocked_get_vlc.return_value = mocked_vlc mocked_controller = MagicMock() mocked_controller.media_info.start_time = 0 mocked_controller.media_info.media_type = MediaType.Video mocked_controller.media_info.volume = 100 mocked_media = MagicMock() mocked_media.get_duration.return_value = 50000 mocked_display = MagicMock() mocked_display.controller = mocked_controller mocked_display.vlc_media_player.get_media.return_value = mocked_media vlc_player = VlcPlayer(None) vlc_player.set_state(MediaState.Paused, mocked_display) # WHEN: play() is called with patch.object(vlc_player, 'media_state_wait') as mocked_media_state_wait, \ patch.object(vlc_player, 'volume') as mocked_volume: mocked_media_state_wait.return_value = True result = vlc_player.play(mocked_display) # THEN: A bunch of things should happen to play the media mocked_thread.start.assert_called_with() mocked_volume.assert_called_with(mocked_display, 100) self.assertEqual(MediaState.Playing, vlc_player.get_live_state()) mocked_display.vlc_widget.raise_.assert_called_with() self.assertTrue(result, 'The value returned from play() should be True')
def media_state_wait_times_out_test(self, mocked_get_vlc): """ Check that waiting for a state returns False when it times out after 60 seconds """ # GIVEN: A mocked out get_vlc method timeout = MockDateTime.return_values[0] + timedelta(seconds=61) MockDateTime.return_values.append(timeout) mocked_vlc = MagicMock() mocked_vlc.State.Error = 1 mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.vlc_media.get_state.return_value = 2 Registry.create() mocked_application = MagicMock() Registry().register('application', mocked_application) vlc_player = VlcPlayer(None) # WHEN: media_state_wait() is called result = vlc_player.media_state_wait(mocked_display, 3) # THEN: The results should be True self.assertFalse(result)
def test_play_dvd(self, mocked_get_vlc, mocked_threading): """ Test the play() method with a DVD """ # GIVEN: A bunch of mocked out things mocked_thread = MagicMock() mocked_threading.Thread.return_value = mocked_thread mocked_vlc = MagicMock() mocked_get_vlc.return_value = mocked_vlc mocked_controller = MagicMock() mocked_controller.media_info.start_time = 0 mocked_controller.media_info.end_time = 50 mocked_controller.media_info.media_type = MediaType.DVD mocked_controller.media_info.volume = 100 mocked_controller.media_info.title_track = 1 mocked_controller.media_info.audio_track = 1 mocked_controller.media_info.subtitle_track = 1 mocked_display = MagicMock() mocked_display.controller = mocked_controller vlc_player = VlcPlayer(None) vlc_player.set_state(MediaState.Paused, mocked_display) # WHEN: play() is called with patch.object(vlc_player, 'media_state_wait') as mocked_media_state_wait, \ patch.object(vlc_player, 'volume') as mocked_volume: mocked_media_state_wait.return_value = True result = vlc_player.play(mocked_display) # THEN: A bunch of things should happen to play the media mocked_thread.start.assert_called_with() mocked_display.vlc_media_player.set_title.assert_called_with(1) mocked_display.vlc_media_player.play.assert_called_with() mocked_display.vlc_media_player.audio_set_track.assert_called_with(1) mocked_display.vlc_media_player.video_set_spu.assert_called_with(1) mocked_volume.assert_called_with(mocked_display, 100) self.assertEqual(MediaState.Playing, vlc_player.get_live_state()) mocked_display.vlc_widget.raise_.assert_called_with() self.assertTrue(result, 'The value returned from play() should be True')
def pause_fail_test(self, mocked_get_vlc): """ Test the pause method when the player fails to pause the media """ # GIVEN: A mocked out get_vlc method mocked_vlc = MagicMock() mocked_vlc.State.Playing = 1 mocked_vlc.State.Paused = 2 mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.vlc_media.get_state.return_value = 1 vlc_player = VlcPlayer(None) # WHEN: The media is paused with patch.object(vlc_player, 'media_state_wait') as mocked_media_state_wait: mocked_media_state_wait.return_value = False vlc_player.pause(mocked_display) # THEN: The pause method should exit early mocked_display.vlc_media.get_state.assert_called_with() mocked_display.vlc_media_player.pause.assert_called_with() mocked_media_state_wait.assert_called_with(mocked_display, 2) self.assertNotEqual(MediaState.Paused, vlc_player.state)
def test_pause(self, mocked_get_vlc): """ Test that the pause method works correctly """ # GIVEN: A mocked out get_vlc method mocked_vlc = MagicMock() mocked_vlc.State.Playing = 1 mocked_vlc.State.Paused = 2 mocked_get_vlc.return_value = mocked_vlc mocked_display = MagicMock() mocked_display.vlc_media.get_state.return_value = 1 vlc_player = VlcPlayer(None) # WHEN: The media is paused with patch.object(vlc_player, 'media_state_wait') as mocked_media_state_wait: mocked_media_state_wait.return_value = True vlc_player.pause(mocked_display) # THEN: The pause method should exit early mocked_display.vlc_media.get_state.assert_called_with() mocked_display.vlc_media_player.pause.assert_called_with() mocked_media_state_wait.assert_called_with(mocked_display, 2) self.assertEqual(MediaState.Paused, vlc_player.get_live_state())