def test_on_slide_selected_index_service_item_command(self, mocked_execute): """ Test that when there is a command service item, the command is executed """ # GIVEN: A mocked service item and a slide controller with a service item mocked_item = MagicMock() mocked_item.is_command.return_value = True mocked_item.name = 'Mocked Item' mocked_update_preview = MagicMock() mocked_preview_widget = MagicMock() mocked_slide_selected = MagicMock() Registry.create() slide_controller = SlideController(None) slide_controller.service_item = mocked_item slide_controller.update_preview = mocked_update_preview slide_controller.preview_widget = mocked_preview_widget slide_controller.slide_selected = mocked_slide_selected slide_controller.is_live = True # WHEN: The method is called slide_controller.on_slide_selected_index([9]) # THEN: It should have sent a notification mocked_item.is_command.assert_called_once_with() mocked_execute.assert_called_once_with('mocked item_slide', [mocked_item, True, 9]) mocked_update_preview.assert_called_once_with() assert 0 == mocked_preview_widget.change_slide.call_count, 'Change slide should not have been called' assert 0 == mocked_slide_selected.call_count, 'slide_selected should not have been called'
def test_process_item(mocked_execute): """ Test that presentation service-items is closed when followed by a media service-item """ # GIVEN: A mocked presentation service item, a mocked media service item, a mocked Registry.execute # and a slide controller with many mocks. mocked_pres_item = MagicMock() mocked_pres_item.name = 'mocked_presentation_item' mocked_pres_item.is_command.return_value = True mocked_pres_item.is_media.return_value = False mocked_pres_item.is_image.return_value = False mocked_pres_item.from_service = False mocked_pres_item.get_frames.return_value = [] mocked_media_item = MagicMock() mocked_media_item.name = 'mocked_media_item' mocked_media_item.is_command.return_value = True mocked_media_item.is_media.return_value = True mocked_media_item.is_image.return_value = False mocked_media_item.from_service = False mocked_media_item.get_frames.return_value = [] mocked_main_window = MagicMock() Registry.create() Registry().register('main_window', mocked_main_window) Registry().register('media_controller', MagicMock()) slide_controller = SlideController(None) slide_controller.service_item = mocked_pres_item slide_controller.is_live = False slide_controller.preview_widget = MagicMock() slide_controller.preview_display = MagicMock() slide_controller.enable_tool_bar = MagicMock() slide_controller.on_media_start = MagicMock() slide_controller.slide_selected = MagicMock() slide_controller.on_stop_loop = MagicMock() slide_controller.info_label = MagicMock() slide_controller.displays = [MagicMock()] slide_controller.split = 0 slide_controller.type_prefix = 'test' # WHEN: _process_item is called slide_controller._process_item(mocked_media_item, 0) # THEN: Registry.execute should have been called to stop the presentation assert 2 == mocked_execute.call_count, 'Execute should have been called 2 times' assert 'mocked_presentation_item_stop' == mocked_execute.call_args_list[1][0][0], \ 'The presentation should have been stopped.'
def test_enable_tool_bar_preview(self): """ Check that when enable_tool_bar on a preview slide controller is called, enable_preview_tool_bar is called """ # GIVEN: Mocked out enable methods and a real slide controller which is set to live mocked_enable_live_tool_bar = MagicMock() mocked_enable_preview_tool_bar = MagicMock() slide_controller = SlideController(None) slide_controller.is_live = False slide_controller.enable_live_tool_bar = mocked_enable_live_tool_bar slide_controller.enable_preview_tool_bar = mocked_enable_preview_tool_bar mocked_service_item = MagicMock() # WHEN: enable_tool_bar() is called slide_controller.enable_tool_bar(mocked_service_item) # THEN: The enable_preview_tool_bar() method is called, not enable_live_tool_bar() mocked_enable_preview_tool_bar.assert_called_once_with(mocked_service_item) assert 0 == mocked_enable_live_tool_bar.call_count, 'The live method should not have been called'
def test_update_preview_image(self, mocked_singleShot, mocked_image_manager): """ Test that the preview screen is updated with the correct preview for image service items """ # GIVEN: A mocked image service item, a mocked image_manager, a mocked Registry, # and a slide controller with many mocks. # Mocked Image Item mocked_img_item = MagicMock() mocked_img_item.get_rendered_frame.return_value = '' mocked_img_item.is_capable = MagicMock() mocked_img_item.is_capable.side_effect = [False, True] # Mock image_manager mocked_image_manager.get_image.return_value = QtGui.QImage() # Mock Registry Registry.create() mocked_main_window = MagicMock() Registry().register('main_window', mocked_main_window) # Mock SlideController slide_controller = SlideController(None) slide_controller.service_item = mocked_img_item slide_controller.is_live = False slide_controller.log_debug = MagicMock() slide_controller.selected_row = MagicMock() slide_controller.screens = MagicMock() slide_controller.screens.current = {'primary': ''} slide_controller.display = MagicMock() slide_controller.display.preview.return_value = QtGui.QImage() slide_controller.grab_maindisplay = MagicMock() slide_controller.slide_preview = MagicMock() slide_controller.slide_count = 0 # WHEN: update_preview is called slide_controller.update_preview() # THEN: setPixmap and display.preview should have been called assert 1 == slide_controller.slide_preview.setPixmap.call_count, 'setPixmap should be called' assert 1 == slide_controller.display.preview.call_count, 'display.preview() should be called' assert 0 == mocked_singleShot.call_count, 'Timer to grab_maindisplay should not be called' assert 0 == mocked_image_manager.get_image.call_count, 'image_manager should not be called'