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)
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'