Exemplo n.º 1
0
    def test_replace_recalculate_layout_img(self, mocked_setRowHeight,
                                            mocked_resizeRowsToContents):
        """
        Test if "Max height for non-text slides..." disabled, img slides unchanged in replace_service_item & __recalc...
        """
        # GIVEN: A setting to adjust "Max height for non-text slides in slide controller",
        #        an image ServiceItem and a ListPreviewWidget.

        # Mock Settings().value('advanced/slide max height')
        self.mocked_Settings_obj.value.return_value = 0
        # Mock self.viewport().width()
        self.mocked_viewport_obj.width.return_value = 200
        # Mock image service item
        service_item = MagicMock()
        service_item.is_text.return_value = False
        service_item.is_capable.return_value = False
        service_item.get_frames.return_value = [{
            'title': None,
            'path': None,
            'image': None
        }, {
            'title': None,
            'path': None,
            'image': None
        }]
        # init ListPreviewWidget and load service item
        list_preview_widget = ListPreviewWidget(None, 1)
        list_preview_widget.replace_service_item(service_item, 200, 0)
        # Change viewport width before forcing a resize
        self.mocked_viewport_obj.width.return_value = 400

        # WHEN: __recalculate_layout() is called (via resizeEvent)
        list_preview_widget.resizeEvent(None)
        self.mocked_Settings_obj.value.return_value = None
        list_preview_widget.resizeEvent(None)

        # THEN: resizeRowsToContents() should not be called, while setRowHeight() should be called
        #       twice for each slide.
        assert mocked_resizeRowsToContents.call_count == 0, 'Should not be called'
        assert mocked_setRowHeight.call_count == 6, 'Should be called 3 times for each slide'
        calls = [
            call(0, 200),
            call(1, 200),
            call(0, 400),
            call(1, 400),
            call(0, 400),
            call(1, 400)
        ]
        mocked_setRowHeight.assert_has_calls(calls)
Exemplo n.º 2
0
    def test_replace_recalculate_layout_text(self, mocked_setRowHeight,
                                             mocked_resizeRowsToContents):
        """
        Test if "Max height for non-text slides..." enabled, txt slides unchanged in replace_service_item & __recalc...
        """
        # GIVEN: A setting to adjust "Max height for non-text slides in slide controller",
        #        a text ServiceItem and a ListPreviewWidget.

        # Mock Settings().value('advanced/slide max height')
        self.mocked_Settings_obj.value.return_value = 100
        # Mock self.viewport().width()
        self.mocked_viewport_obj.width.return_value = 200
        # Mock text service item
        service_item = MagicMock()
        service_item.is_text.return_value = True
        service_item.get_frames.return_value = [{
            'title': None,
            'text': None,
            'verseTag': None
        }, {
            'title': None,
            'text': None,
            'verseTag': None
        }]
        # init ListPreviewWidget and load service item
        list_preview_widget = ListPreviewWidget(None, 1)
        list_preview_widget.replace_service_item(service_item, 200, 0)
        # Change viewport width before forcing a resize
        self.mocked_viewport_obj.width.return_value = 400

        # WHEN: __recalculate_layout() is called (via resizeEvent)
        list_preview_widget.resizeEvent(None)

        # THEN: setRowHeight() should not be called, while resizeRowsToContents() should be called twice
        #       (once each in __recalculate_layout and replace_service_item)
        assert mocked_resizeRowsToContents.call_count == 2, 'Should be called'
        assert mocked_setRowHeight.call_count == 0, 'Should not be called'