Exemplo n.º 1
0
    def test_on_go_live_service_manager(self):
        """
        Test that when the on_go_live() method is called the message is sent to the live controller and focus is
        set correctly.
        """
        # GIVEN: A new SlideController instance and service manager preview then pressing go live should respond
        mocked_display = MagicMock()
        mocked_service_manager = MagicMock()
        mocked_live_controller = MagicMock()
        mocked_preview_widget = MagicMock()
        mocked_service_item = MagicMock()
        mocked_service_item.from_service = True
        mocked_service_item.unique_identifier = 42
        mocked_preview_widget.current_slide_number.return_value = 1
        mocked_preview_widget.slide_count = MagicMock(return_value=2)
        mocked_live_controller.preview_widget = MagicMock()
        Registry.create()
        Registry().register('live_controller', mocked_live_controller)
        Registry().register('service_manager', mocked_service_manager)
        slide_controller = SlideController(None)
        slide_controller.service_item = mocked_service_item
        slide_controller.preview_widget = mocked_preview_widget
        slide_controller.display = mocked_display

        # WHEN: on_go_live() is called
        slide_controller.on_go_live()

        # THEN: the service manager should have the service item and the focus set to live
        mocked_service_manager.preview_live.assert_called_once_with(42, 1)
        mocked_live_controller.preview_widget.setFocus.assert_called_once_with()
Exemplo n.º 2
0
    def test_process_item(self, 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 = []
        Registry.create()
        mocked_main_window = MagicMock()
        Registry().register('main_window', mocked_main_window)
        slide_controller = SlideController(None)
        slide_controller.service_item = mocked_pres_item
        slide_controller.is_live = False
        slide_controller.preview_widget = 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.display = 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.'
Exemplo n.º 3
0
    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'