From d5a4cbd900fe23fa8f5e52030e8304dafd06b004 Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Fri, 9 Nov 2012 22:44:25 +0400 Subject: [PATCH 01/22] Autoplay slides ffuture --- openlp/core/lib/serviceitem.py | 10 +++ openlp/core/ui/servicemanager.py | 101 ++++++++++++++++++++++++++++++ openlp/core/ui/slidecontroller.py | 18 ++++-- 3 files changed, 125 insertions(+), 4 deletions(-) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 080e74d49..5f8e1aef2 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -123,6 +123,10 @@ class ServiceItem(object): self.background_audio = [] self.theme_overwritten = False self.temporary_edit = False + self.AutoPlaySlidesOnce = False + self.AutoPlaySlidesLoop = False + self.TimedSlideInterval = 0 + self._new_item() def _new_item(self): @@ -276,6 +280,9 @@ class ServiceItem(object): u'search': self.search_string, u'data': self.data_string, u'xml_version': self.xml_version, + u'AutoPlaySlidesOnce': self.AutoPlaySlidesOnce, + u'AutoPlaySlidesLoop': self.AutoPlaySlidesLoop, + u'TimedSlideInterval': self.TimedSlideInterval, u'start_time': self.start_time, u'end_time': self.end_time, u'media_length': self.media_length, @@ -342,6 +349,9 @@ class ServiceItem(object): filename = os.path.join(path, text_image[u'title']) self.add_from_command( path, text_image[u'title'], text_image[u'image']) + self.AutoPlaySlidesOnce = header.get(u'AutoPlaySlidesOnce', False) + self.AutoPlaySlidesLoop = header.get(u'AutoPlaySlidesLoop', False) + self.TimedSlideInterval = header.get(u'TimedSlideInterval', 0) self._new_item() def get_display_title(self): diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 50f38ade2..8bfadf3b1 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -309,6 +309,25 @@ class ServiceManager(QtGui.QWidget): icon=u':/media/media_time.png', triggers=self.onStartTimeForm) # Add already existing delete action to the menu. self.menu.addAction(self.serviceManagerList.delete) + self.menu.addSeparator() + # Add AutoPlay menu actions + self.AutoPlaySlidesGroup = QtGui.QMenu( + translate('OpenLP.ServiceManager', '&Auto play slides')) + self.menu.addMenu(self.AutoPlaySlidesGroup) + self.AutoPlaySlidesLoop = create_widget_action(self.AutoPlaySlidesGroup, + text=translate('OpenLP.ServiceManager', '&Auto play slides Loop'), + checked=False, + triggers=self.toggleAutoPlaySlidesLoop) + self.AutoPlaySlidesOnce = create_widget_action(self.AutoPlaySlidesGroup, + text=translate('OpenLP.ServiceManager', '&Auto play slides once'), + checked=False, + triggers=self.toggleAutoPlaySlidesOnce) + self.AutoPlaySlidesGroup.addSeparator() + self.TimedSlideInterval = create_widget_action(self.AutoPlaySlidesGroup, + text=translate('OpenLP.ServiceManager', '&Delay between slides'), + checked=False, + triggers=self.onTimedSlideInterval) + self.menu.addSeparator() self.previewAction = create_widget_action(self.menu, text=translate('OpenLP.ServiceManager', 'Show &Preview'), @@ -765,6 +784,29 @@ class ServiceManager(QtGui.QWidget): self.maintainAction.setVisible(True) if item.parent() is None: self.notesAction.setVisible(True) + if serviceItem[u'service_item'].is_capable(ItemCapabilities.CanLoop) and \ + len(serviceItem[u'service_item'].get_frames()) > 1: + self.AutoPlaySlidesGroup.menuAction().setVisible(True) + self.AutoPlaySlidesOnce\ + .setChecked(serviceItem[u'service_item'].AutoPlaySlidesOnce) + self.AutoPlaySlidesLoop\ + .setChecked(serviceItem[u'service_item'].AutoPlaySlidesLoop) + self.TimedSlideInterval\ + .setChecked(serviceItem[u'service_item'].TimedSlideInterval > 0) + if serviceItem[u'service_item'].TimedSlideInterval > 0: + DelaySuffix = u' ' + DelaySuffix += str(serviceItem[u'service_item'].TimedSlideInterval) + DelaySuffix += u' s' + else: + DelaySuffix = u' ...' + self.TimedSlideInterval.setText(translate('OpenLP.ServiceManager', + '&Delay between slides')+DelaySuffix) + #self.AutoPlaySlidesGroup.setChecked( + # serviceItem[u'service_item'].TimedSlideInterval > 0 and + # (serviceItem[u'service_item'].AutoPlaySlidesOnce or + # serviceItem[u'service_item'].AutoPlaySlidesLoop)) + else: + self.AutoPlaySlidesGroup.menuAction().setVisible(False) if serviceItem[u'service_item']\ .is_capable(ItemCapabilities.HasVariableStartTime): self.timeAction.setVisible(True) @@ -802,6 +844,62 @@ class ServiceManager(QtGui.QWidget): if self.startTimeForm.exec_(): self.repaintServiceList(item, -1) + def toggleAutoPlaySlidesOnce(self): + """ + Toggle Auto play slide once. + """ + item = self.findServiceItem()[0] + service_item = self.serviceItems[item][u'service_item'] + service_item.AutoPlaySlidesOnce = not service_item.AutoPlaySlidesOnce + if service_item.AutoPlaySlidesOnce: + service_item.AutoPlaySlidesLoop = False + self.AutoPlaySlidesLoop.setChecked(False) + if service_item.AutoPlaySlidesOnce and service_item.TimedSlideInterval == 0: + service_item.TimedSlideInterval = Settings().value(u'loop delay', + QtCore.QVariant(5)).toInt()[0] + self.setModified() + + def toggleAutoPlaySlidesLoop(self): + """ + Toggle Auto play slide loop. + """ + item = self.findServiceItem()[0] + service_item = self.serviceItems[item][u'service_item'] + service_item.AutoPlaySlidesLoop = not service_item.AutoPlaySlidesLoop + if service_item.AutoPlaySlidesLoop: + service_item.AutoPlaySlidesOnce = False + self.AutoPlaySlidesOnce.setChecked(False) + if service_item.AutoPlaySlidesLoop and service_item.TimedSlideInterval == 0: + service_item.TimedSlideInterval = Settings().value(u'loop delay', + QtCore.QVariant(5)).toInt()[0] + self.setModified() + + def onTimedSlideInterval(self): + """ + on set times slide interval. + """ + item = self.findServiceItem()[0] + service_item = self.serviceItems[item][u'service_item'] + if service_item.TimedSlideInterval == 0: + TimedSlideInterval = Settings().value(u'loop delay', + QtCore.QVariant(5)).toInt()[0] + else: + TimedSlideInterval = service_item.TimedSlideInterval + TimedSlideInterval, ok = QtGui.QInputDialog.getInteger(self, + self.tr(translate('OpenLP.ServiceManager', 'Inpunt delay')), + self.tr(translate('OpenLP.ServiceManager', + 'Delay between slides in seconds.')), TimedSlideInterval, 0, 180, 1) + if ok: + service_item.TimedSlideInterval = TimedSlideInterval + if service_item.TimedSlideInterval <> 0\ + and not service_item.AutoPlaySlidesLoop\ + and not service_item.AutoPlaySlidesOnce: + service_item.AutoPlaySlidesLoop = True + elif service_item.TimedSlideInterval == 0: + service_item.AutoPlaySlidesLoop = False + service_item.AutoPlaySlidesOnce = False + self.setModified() + def onServiceItemEditForm(self): """ Opens a dialog to edit the service item and update the service @@ -1305,7 +1403,10 @@ class ServiceManager(QtGui.QWidget): ItemCapabilities.CanPreview): self.mainwindow.previewController.addServiceManagerItem( self.serviceItems[item][u'service_item'], 0) + NextItem = self.serviceManagerList.topLevelItem(item) + self.serviceManagerList.setCurrentItem(NextItem) self.mainwindow.liveController.previewListWidget.setFocus() + self.mainwindow.liveController.onToggleLoop() else: critical_error_message_box( translate('OpenLP.ServiceManager', 'Missing Display Handler'), diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 996fd8af2..7330e427f 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -778,6 +778,16 @@ class SlideController(Controller): self.slideSelected() else: self._processItem(item, slidenum) + if self.isLive and item.AutoPlaySlidesLoop\ + and item.TimedSlideInterval > 0: + self.playSlidesLoop.setChecked(item.AutoPlaySlidesLoop) + self.delaySpinBox.setValue(int(item.TimedSlideInterval)) + self.onPlaySlidesLoop() + elif self.isLive and item.AutoPlaySlidesOnce\ + and item.TimedSlideInterval > 0: + self.playSlidesOnce.setChecked(item.AutoPlaySlidesOnce) + self.delaySpinBox.setValue(int(item.TimedSlideInterval)) + self.onPlaySlidesOnce() def _processItem(self, serviceItem, slideno): """ @@ -1255,11 +1265,11 @@ class SlideController(Controller): self.playSlidesLoop.setText(UiStrings().StopPlaySlidesInLoop) self.playSlidesOnce.setIcon(build_icon(u':/media/media_time.png')) self.playSlidesOnce.setText(UiStrings().PlaySlidesToEnd) + self.playSlidesMenu.setDefaultAction(self.playSlidesLoop) + self.playSlidesOnce.setChecked(False) else: self.playSlidesLoop.setIcon(build_icon(u':/media/media_time.png')) self.playSlidesLoop.setText(UiStrings().PlaySlidesInLoop) - self.playSlidesMenu.setDefaultAction(self.playSlidesLoop) - self.playSlidesOnce.setChecked(False) self.onToggleLoop() def onPlaySlidesOnce(self, checked=None): @@ -1276,11 +1286,11 @@ class SlideController(Controller): self.playSlidesOnce.setText(UiStrings().StopPlaySlidesToEnd) self.playSlidesLoop.setIcon(build_icon(u':/media/media_time.png')) self.playSlidesLoop.setText(UiStrings().PlaySlidesInLoop) + self.playSlidesMenu.setDefaultAction(self.playSlidesOnce) + self.playSlidesLoop.setChecked(False) else: self.playSlidesOnce.setIcon(build_icon(u':/media/media_time')) self.playSlidesOnce.setText(UiStrings().PlaySlidesToEnd) - self.playSlidesMenu.setDefaultAction(self.playSlidesOnce) - self.playSlidesLoop.setChecked(False) self.onToggleLoop() def setAudioItemsVisibility(self, visible): From 4af902e74d0e37b921b368c4780448673f042306 Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Tue, 13 Nov 2012 12:11:49 +0400 Subject: [PATCH 02/22] Some fixes for autoplay --- openlp/core/ui/servicemanager.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 8bfadf3b1..118f65b92 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -315,11 +315,11 @@ class ServiceManager(QtGui.QWidget): translate('OpenLP.ServiceManager', '&Auto play slides')) self.menu.addMenu(self.AutoPlaySlidesGroup) self.AutoPlaySlidesLoop = create_widget_action(self.AutoPlaySlidesGroup, - text=translate('OpenLP.ServiceManager', '&Auto play slides Loop'), + text=translate('OpenLP.ServiceManager', 'Auto play slides &Loop'), checked=False, triggers=self.toggleAutoPlaySlidesLoop) self.AutoPlaySlidesOnce = create_widget_action(self.AutoPlaySlidesGroup, - text=translate('OpenLP.ServiceManager', '&Auto play slides once'), + text=translate('OpenLP.ServiceManager', 'Auto play slides &Once'), checked=False, triggers=self.toggleAutoPlaySlidesOnce) self.AutoPlaySlidesGroup.addSeparator() @@ -795,12 +795,12 @@ class ServiceManager(QtGui.QWidget): .setChecked(serviceItem[u'service_item'].TimedSlideInterval > 0) if serviceItem[u'service_item'].TimedSlideInterval > 0: DelaySuffix = u' ' - DelaySuffix += str(serviceItem[u'service_item'].TimedSlideInterval) + DelaySuffix += unicode(serviceItem[u'service_item'].TimedSlideInterval) DelaySuffix += u' s' else: DelaySuffix = u' ...' self.TimedSlideInterval.setText(translate('OpenLP.ServiceManager', - '&Delay between slides')+DelaySuffix) + '&Delay between slides') + DelaySuffix) #self.AutoPlaySlidesGroup.setChecked( # serviceItem[u'service_item'].TimedSlideInterval > 0 and # (serviceItem[u'service_item'].AutoPlaySlidesOnce or @@ -886,9 +886,9 @@ class ServiceManager(QtGui.QWidget): else: TimedSlideInterval = service_item.TimedSlideInterval TimedSlideInterval, ok = QtGui.QInputDialog.getInteger(self, - self.tr(translate('OpenLP.ServiceManager', 'Inpunt delay')), - self.tr(translate('OpenLP.ServiceManager', - 'Delay between slides in seconds.')), TimedSlideInterval, 0, 180, 1) + translate('OpenLP.ServiceManager', 'Input delay'), + translate('OpenLP.ServiceManager', + 'Delay between slides in seconds.'), TimedSlideInterval, 0, 180, 1) if ok: service_item.TimedSlideInterval = TimedSlideInterval if service_item.TimedSlideInterval <> 0\ @@ -1406,7 +1406,6 @@ class ServiceManager(QtGui.QWidget): NextItem = self.serviceManagerList.topLevelItem(item) self.serviceManagerList.setCurrentItem(NextItem) self.mainwindow.liveController.previewListWidget.setFocus() - self.mainwindow.liveController.onToggleLoop() else: critical_error_message_box( translate('OpenLP.ServiceManager', 'Missing Display Handler'), From 77807518077ba5714f7f147a79cf33ca4002309f Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Tue, 13 Nov 2012 12:32:09 +0400 Subject: [PATCH 03/22] all methods renamed by standard. --- openlp/core/ui/servicemanager.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 118f65b92..2ed9a7d9e 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -317,16 +317,16 @@ class ServiceManager(QtGui.QWidget): self.AutoPlaySlidesLoop = create_widget_action(self.AutoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', 'Auto play slides &Loop'), checked=False, - triggers=self.toggleAutoPlaySlidesLoop) + triggers=self.toggle_auto_play_slides_loop) self.AutoPlaySlidesOnce = create_widget_action(self.AutoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', 'Auto play slides &Once'), checked=False, - triggers=self.toggleAutoPlaySlidesOnce) + triggers=self.toggle_auto_play_slides_once) self.AutoPlaySlidesGroup.addSeparator() self.TimedSlideInterval = create_widget_action(self.AutoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', '&Delay between slides'), checked=False, - triggers=self.onTimedSlideInterval) + triggers=self.on_timed_slide_interval) self.menu.addSeparator() self.previewAction = create_widget_action(self.menu, @@ -844,9 +844,10 @@ class ServiceManager(QtGui.QWidget): if self.startTimeForm.exec_(): self.repaintServiceList(item, -1) - def toggleAutoPlaySlidesOnce(self): + def toggle_auto_play_slides_once(self): """ Toggle Auto play slide once. + Inverts auto play once option for the item """ item = self.findServiceItem()[0] service_item = self.serviceItems[item][u'service_item'] @@ -859,7 +860,7 @@ class ServiceManager(QtGui.QWidget): QtCore.QVariant(5)).toInt()[0] self.setModified() - def toggleAutoPlaySlidesLoop(self): + def toggle_auto_play_slides_loop(self): """ Toggle Auto play slide loop. """ @@ -874,9 +875,10 @@ class ServiceManager(QtGui.QWidget): QtCore.QVariant(5)).toInt()[0] self.setModified() - def onTimedSlideInterval(self): + def on_timed_slide_interval(self): """ on set times slide interval. + Shows input dialog for enter interval in seconds for delay """ item = self.findServiceItem()[0] service_item = self.serviceItems[item][u'service_item'] From 2f34b5ddf2232fb5e0c68521cb5e3e49b7c0d3b8 Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Wed, 14 Nov 2012 15:47:15 +0400 Subject: [PATCH 04/22] Renamed all variables by standard. --- openlp/core/lib/serviceitem.py | 19 ++++--- openlp/core/ui/servicemanager.py | 84 +++++++++++++++---------------- openlp/core/ui/slidecontroller.py | 16 +++--- 3 files changed, 59 insertions(+), 60 deletions(-) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 5f8e1aef2..ffeec3383 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -123,10 +123,9 @@ class ServiceItem(object): self.background_audio = [] self.theme_overwritten = False self.temporary_edit = False - self.AutoPlaySlidesOnce = False - self.AutoPlaySlidesLoop = False - self.TimedSlideInterval = 0 - + self.auto_play_slides_once = False + self.auto_play_slides_loop = False + self.timed_slide_interval = 0 self._new_item() def _new_item(self): @@ -280,9 +279,9 @@ class ServiceItem(object): u'search': self.search_string, u'data': self.data_string, u'xml_version': self.xml_version, - u'AutoPlaySlidesOnce': self.AutoPlaySlidesOnce, - u'AutoPlaySlidesLoop': self.AutoPlaySlidesLoop, - u'TimedSlideInterval': self.TimedSlideInterval, + u'auto_play_slides_once': self.auto_play_slides_once, + u'auto_play_slides_loop': self.auto_play_slides_loop, + u'timed_slide_interval': self.timed_slide_interval, u'start_time': self.start_time, u'end_time': self.end_time, u'media_length': self.media_length, @@ -349,9 +348,9 @@ class ServiceItem(object): filename = os.path.join(path, text_image[u'title']) self.add_from_command( path, text_image[u'title'], text_image[u'image']) - self.AutoPlaySlidesOnce = header.get(u'AutoPlaySlidesOnce', False) - self.AutoPlaySlidesLoop = header.get(u'AutoPlaySlidesLoop', False) - self.TimedSlideInterval = header.get(u'TimedSlideInterval', 0) + self.auto_play_slides_once = header.get(u'auto_play_slides_once', False) + self.auto_play_slides_loop = header.get(u'auto_play_slides_loop', False) + self.timed_slide_interval = header.get(u'timed_slide_interval', 0) self._new_item() def get_display_title(self): diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 2ed9a7d9e..185041994 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -314,16 +314,16 @@ class ServiceManager(QtGui.QWidget): self.AutoPlaySlidesGroup = QtGui.QMenu( translate('OpenLP.ServiceManager', '&Auto play slides')) self.menu.addMenu(self.AutoPlaySlidesGroup) - self.AutoPlaySlidesLoop = create_widget_action(self.AutoPlaySlidesGroup, + self.auto_play_slides_loop = create_widget_action(self.AutoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', 'Auto play slides &Loop'), checked=False, triggers=self.toggle_auto_play_slides_loop) - self.AutoPlaySlidesOnce = create_widget_action(self.AutoPlaySlidesGroup, + self.auto_play_slides_once = create_widget_action(self.AutoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', 'Auto play slides &Once'), checked=False, triggers=self.toggle_auto_play_slides_once) self.AutoPlaySlidesGroup.addSeparator() - self.TimedSlideInterval = create_widget_action(self.AutoPlaySlidesGroup, + self.timed_slide_interval = create_widget_action(self.AutoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', '&Delay between slides'), checked=False, triggers=self.on_timed_slide_interval) @@ -787,24 +787,24 @@ class ServiceManager(QtGui.QWidget): if serviceItem[u'service_item'].is_capable(ItemCapabilities.CanLoop) and \ len(serviceItem[u'service_item'].get_frames()) > 1: self.AutoPlaySlidesGroup.menuAction().setVisible(True) - self.AutoPlaySlidesOnce\ - .setChecked(serviceItem[u'service_item'].AutoPlaySlidesOnce) - self.AutoPlaySlidesLoop\ - .setChecked(serviceItem[u'service_item'].AutoPlaySlidesLoop) - self.TimedSlideInterval\ - .setChecked(serviceItem[u'service_item'].TimedSlideInterval > 0) - if serviceItem[u'service_item'].TimedSlideInterval > 0: + self.auto_play_slides_once\ + .setChecked(serviceItem[u'service_item'].auto_play_slides_once) + self.auto_play_slides_loop\ + .setChecked(serviceItem[u'service_item'].auto_play_slides_loop) + self.timed_slide_interval\ + .setChecked(serviceItem[u'service_item'].timed_slide_interval > 0) + if serviceItem[u'service_item'].timed_slide_interval > 0: DelaySuffix = u' ' - DelaySuffix += unicode(serviceItem[u'service_item'].TimedSlideInterval) + DelaySuffix += unicode(serviceItem[u'service_item'].timed_slide_interval) DelaySuffix += u' s' else: DelaySuffix = u' ...' - self.TimedSlideInterval.setText(translate('OpenLP.ServiceManager', + self.timed_slide_interval.setText(translate('OpenLP.ServiceManager', '&Delay between slides') + DelaySuffix) #self.AutoPlaySlidesGroup.setChecked( - # serviceItem[u'service_item'].TimedSlideInterval > 0 and - # (serviceItem[u'service_item'].AutoPlaySlidesOnce or - # serviceItem[u'service_item'].AutoPlaySlidesLoop)) + # serviceItem[u'service_item'].timed_slide_interval > 0 and + # (serviceItem[u'service_item'].auto_play_slides_once or + # serviceItem[u'service_item'].auto_play_slides_loop)) else: self.AutoPlaySlidesGroup.menuAction().setVisible(False) if serviceItem[u'service_item']\ @@ -851,12 +851,12 @@ class ServiceManager(QtGui.QWidget): """ item = self.findServiceItem()[0] service_item = self.serviceItems[item][u'service_item'] - service_item.AutoPlaySlidesOnce = not service_item.AutoPlaySlidesOnce - if service_item.AutoPlaySlidesOnce: - service_item.AutoPlaySlidesLoop = False - self.AutoPlaySlidesLoop.setChecked(False) - if service_item.AutoPlaySlidesOnce and service_item.TimedSlideInterval == 0: - service_item.TimedSlideInterval = Settings().value(u'loop delay', + service_item.auto_play_slides_once = not service_item.auto_play_slides_once + if service_item.auto_play_slides_once: + service_item.auto_play_slides_loop = False + self.auto_play_slides_loop.setChecked(False) + if service_item.auto_play_slides_once and service_item.timed_slide_interval == 0: + service_item.timed_slide_interval = Settings().value(u'loop delay', QtCore.QVariant(5)).toInt()[0] self.setModified() @@ -866,12 +866,12 @@ class ServiceManager(QtGui.QWidget): """ item = self.findServiceItem()[0] service_item = self.serviceItems[item][u'service_item'] - service_item.AutoPlaySlidesLoop = not service_item.AutoPlaySlidesLoop - if service_item.AutoPlaySlidesLoop: - service_item.AutoPlaySlidesOnce = False - self.AutoPlaySlidesOnce.setChecked(False) - if service_item.AutoPlaySlidesLoop and service_item.TimedSlideInterval == 0: - service_item.TimedSlideInterval = Settings().value(u'loop delay', + service_item.auto_play_slides_loop = not service_item.auto_play_slides_loop + if service_item.auto_play_slides_loop: + service_item.auto_play_slides_once = False + self.auto_play_slides_once.setChecked(False) + if service_item.auto_play_slides_loop and service_item.timed_slide_interval == 0: + service_item.timed_slide_interval = Settings().value(u'loop delay', QtCore.QVariant(5)).toInt()[0] self.setModified() @@ -882,24 +882,24 @@ class ServiceManager(QtGui.QWidget): """ item = self.findServiceItem()[0] service_item = self.serviceItems[item][u'service_item'] - if service_item.TimedSlideInterval == 0: - TimedSlideInterval = Settings().value(u'loop delay', + if service_item.timed_slide_interval == 0: + timed_slide_interval = Settings().value(u'loop delay', QtCore.QVariant(5)).toInt()[0] else: - TimedSlideInterval = service_item.TimedSlideInterval - TimedSlideInterval, ok = QtGui.QInputDialog.getInteger(self, + timed_slide_interval = service_item.timed_slide_interval + timed_slide_interval, ok = QtGui.QInputDialog.getInteger(self, translate('OpenLP.ServiceManager', 'Input delay'), translate('OpenLP.ServiceManager', - 'Delay between slides in seconds.'), TimedSlideInterval, 0, 180, 1) + 'Delay between slides in seconds.'), timed_slide_interval, 0, 180, 1) if ok: - service_item.TimedSlideInterval = TimedSlideInterval - if service_item.TimedSlideInterval <> 0\ - and not service_item.AutoPlaySlidesLoop\ - and not service_item.AutoPlaySlidesOnce: - service_item.AutoPlaySlidesLoop = True - elif service_item.TimedSlideInterval == 0: - service_item.AutoPlaySlidesLoop = False - service_item.AutoPlaySlidesOnce = False + service_item.timed_slide_interval = timed_slide_interval + if service_item.timed_slide_interval <> 0\ + and not service_item.auto_play_slides_loop\ + and not service_item.auto_play_slides_once: + service_item.auto_play_slides_loop = True + elif service_item.timed_slide_interval == 0: + service_item.auto_play_slides_loop = False + service_item.auto_play_slides_once = False self.setModified() def onServiceItemEditForm(self): @@ -1405,8 +1405,8 @@ class ServiceManager(QtGui.QWidget): ItemCapabilities.CanPreview): self.mainwindow.previewController.addServiceManagerItem( self.serviceItems[item][u'service_item'], 0) - NextItem = self.serviceManagerList.topLevelItem(item) - self.serviceManagerList.setCurrentItem(NextItem) + next_item = self.serviceManagerList.topLevelItem(item) + self.serviceManagerList.setCurrentItem(next_item) self.mainwindow.liveController.previewListWidget.setFocus() else: critical_error_message_box( diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 7330e427f..b79bd9f59 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -778,15 +778,15 @@ class SlideController(Controller): self.slideSelected() else: self._processItem(item, slidenum) - if self.isLive and item.AutoPlaySlidesLoop\ - and item.TimedSlideInterval > 0: - self.playSlidesLoop.setChecked(item.AutoPlaySlidesLoop) - self.delaySpinBox.setValue(int(item.TimedSlideInterval)) + if self.isLive and item.auto_play_slides_loop\ + and item.timed_slide_interval > 0: + self.playSlidesLoop.setChecked(item.auto_play_slides_loop) + self.delaySpinBox.setValue(int(item.timed_slide_interval)) self.onPlaySlidesLoop() - elif self.isLive and item.AutoPlaySlidesOnce\ - and item.TimedSlideInterval > 0: - self.playSlidesOnce.setChecked(item.AutoPlaySlidesOnce) - self.delaySpinBox.setValue(int(item.TimedSlideInterval)) + elif self.isLive and item.auto_play_slides_once\ + and item.timed_slide_interval > 0: + self.playSlidesOnce.setChecked(item.auto_play_slides_once) + self.delaySpinBox.setValue(int(item.timed_slide_interval)) self.onPlaySlidesOnce() def _processItem(self, serviceItem, slideno): From 9bb9c6a629e6305fd6882bcaf193c122def6da9e Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Fri, 16 Nov 2012 21:06:52 +0400 Subject: [PATCH 05/22] Renamed varaibles by standard. --- openlp/core/ui/servicemanager.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 185041994..da5c15cee 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -311,19 +311,19 @@ class ServiceManager(QtGui.QWidget): self.menu.addAction(self.serviceManagerList.delete) self.menu.addSeparator() # Add AutoPlay menu actions - self.AutoPlaySlidesGroup = QtGui.QMenu( + self.auto_play_slides_group = QtGui.QMenu( translate('OpenLP.ServiceManager', '&Auto play slides')) - self.menu.addMenu(self.AutoPlaySlidesGroup) - self.auto_play_slides_loop = create_widget_action(self.AutoPlaySlidesGroup, + self.menu.addMenu(self.auto_play_slides_group) + self.auto_play_slides_loop = create_widget_action(self.auto_play_slides_group, text=translate('OpenLP.ServiceManager', 'Auto play slides &Loop'), checked=False, triggers=self.toggle_auto_play_slides_loop) - self.auto_play_slides_once = create_widget_action(self.AutoPlaySlidesGroup, + self.auto_play_slides_once = create_widget_action(self.auto_play_slides_group, text=translate('OpenLP.ServiceManager', 'Auto play slides &Once'), checked=False, triggers=self.toggle_auto_play_slides_once) - self.AutoPlaySlidesGroup.addSeparator() - self.timed_slide_interval = create_widget_action(self.AutoPlaySlidesGroup, + self.auto_play_slides_group.addSeparator() + self.timed_slide_interval = create_widget_action(self.auto_play_slides_group, text=translate('OpenLP.ServiceManager', '&Delay between slides'), checked=False, triggers=self.on_timed_slide_interval) @@ -786,7 +786,7 @@ class ServiceManager(QtGui.QWidget): self.notesAction.setVisible(True) if serviceItem[u'service_item'].is_capable(ItemCapabilities.CanLoop) and \ len(serviceItem[u'service_item'].get_frames()) > 1: - self.AutoPlaySlidesGroup.menuAction().setVisible(True) + self.auto_play_slides_group.menuAction().setVisible(True) self.auto_play_slides_once\ .setChecked(serviceItem[u'service_item'].auto_play_slides_once) self.auto_play_slides_loop\ @@ -801,12 +801,12 @@ class ServiceManager(QtGui.QWidget): DelaySuffix = u' ...' self.timed_slide_interval.setText(translate('OpenLP.ServiceManager', '&Delay between slides') + DelaySuffix) - #self.AutoPlaySlidesGroup.setChecked( + #self.auto_play_slides_group.setChecked( # serviceItem[u'service_item'].timed_slide_interval > 0 and # (serviceItem[u'service_item'].auto_play_slides_once or # serviceItem[u'service_item'].auto_play_slides_loop)) else: - self.AutoPlaySlidesGroup.menuAction().setVisible(False) + self.auto_play_slides_group.menuAction().setVisible(False) if serviceItem[u'service_item']\ .is_capable(ItemCapabilities.HasVariableStartTime): self.timeAction.setVisible(True) From 2093d9829fc79105ee9625ecdd2323d7fefd9a2e Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Fri, 16 Nov 2012 22:48:49 +0400 Subject: [PATCH 06/22] Renamed varaibles by standard --- openlp/core/ui/servicemanager.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index da5c15cee..a15e8186e 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -794,13 +794,13 @@ class ServiceManager(QtGui.QWidget): self.timed_slide_interval\ .setChecked(serviceItem[u'service_item'].timed_slide_interval > 0) if serviceItem[u'service_item'].timed_slide_interval > 0: - DelaySuffix = u' ' - DelaySuffix += unicode(serviceItem[u'service_item'].timed_slide_interval) - DelaySuffix += u' s' + delay_suffix = u' ' + delay_suffix += unicode(serviceItem[u'service_item'].timed_slide_interval) + delay_suffix += u' s' else: - DelaySuffix = u' ...' + delay_suffix = u' ...' self.timed_slide_interval.setText(translate('OpenLP.ServiceManager', - '&Delay between slides') + DelaySuffix) + '&Delay between slides') + delay_suffix) #self.auto_play_slides_group.setChecked( # serviceItem[u'service_item'].timed_slide_interval > 0 and # (serviceItem[u'service_item'].auto_play_slides_once or From 3e3911c1337adf7931622ff9803bafac9896cae7 Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Sun, 16 Dec 2012 20:45:38 +0400 Subject: [PATCH 07/22] Renamed varaibles by standard. --- openlp/core/ui/servicemanager.py | 44 ++++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index a15e8186e..0ec159d57 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -311,23 +311,22 @@ class ServiceManager(QtGui.QWidget): self.menu.addAction(self.serviceManagerList.delete) self.menu.addSeparator() # Add AutoPlay menu actions - self.auto_play_slides_group = QtGui.QMenu( + self.AutoPlaySlidesGroup = QtGui.QMenu( translate('OpenLP.ServiceManager', '&Auto play slides')) - self.menu.addMenu(self.auto_play_slides_group) - self.auto_play_slides_loop = create_widget_action(self.auto_play_slides_group, + self.menu.addMenu(self.AutoPlaySlidesGroup) + self.AutoPlaySlidesLoop = create_widget_action(self.AutoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', 'Auto play slides &Loop'), checked=False, - triggers=self.toggle_auto_play_slides_loop) - self.auto_play_slides_once = create_widget_action(self.auto_play_slides_group, + triggers=self.toggleAutoPlaySlidesLoop) + self.AutoPlaySlidesOnce = create_widget_action(self.AutoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', 'Auto play slides &Once'), checked=False, - triggers=self.toggle_auto_play_slides_once) - self.auto_play_slides_group.addSeparator() - self.timed_slide_interval = create_widget_action(self.auto_play_slides_group, + triggers=self.toggleAutoPlaySlidesOnce) + self.AutoPlaySlidesGroup.addSeparator() + self.TimedSlideInterval = create_widget_action(self.AutoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', '&Delay between slides'), checked=False, - triggers=self.on_timed_slide_interval) - + triggers=self.onTimedSlideInterval) self.menu.addSeparator() self.previewAction = create_widget_action(self.menu, text=translate('OpenLP.ServiceManager', 'Show &Preview'), @@ -786,12 +785,12 @@ class ServiceManager(QtGui.QWidget): self.notesAction.setVisible(True) if serviceItem[u'service_item'].is_capable(ItemCapabilities.CanLoop) and \ len(serviceItem[u'service_item'].get_frames()) > 1: - self.auto_play_slides_group.menuAction().setVisible(True) - self.auto_play_slides_once\ + self.AutoPlaySlidesGroup.menuAction().setVisible(True) + self.AutoPlaySlidesOnce\ .setChecked(serviceItem[u'service_item'].auto_play_slides_once) - self.auto_play_slides_loop\ + self.AutoPlaySlidesLoop\ .setChecked(serviceItem[u'service_item'].auto_play_slides_loop) - self.timed_slide_interval\ + self.TimedSlideInterval\ .setChecked(serviceItem[u'service_item'].timed_slide_interval > 0) if serviceItem[u'service_item'].timed_slide_interval > 0: delay_suffix = u' ' @@ -799,14 +798,15 @@ class ServiceManager(QtGui.QWidget): delay_suffix += u' s' else: delay_suffix = u' ...' - self.timed_slide_interval.setText(translate('OpenLP.ServiceManager', + self.TimedSlideInterval.setText(translate('OpenLP.ServiceManager', '&Delay between slides') + delay_suffix) - #self.auto_play_slides_group.setChecked( + # For future: make group explain itself more visual + #self.AutoPlaySlidesGroup.setChecked( # serviceItem[u'service_item'].timed_slide_interval > 0 and # (serviceItem[u'service_item'].auto_play_slides_once or # serviceItem[u'service_item'].auto_play_slides_loop)) else: - self.auto_play_slides_group.menuAction().setVisible(False) + self.AutoPlaySlidesGroup.menuAction().setVisible(False) if serviceItem[u'service_item']\ .is_capable(ItemCapabilities.HasVariableStartTime): self.timeAction.setVisible(True) @@ -844,7 +844,7 @@ class ServiceManager(QtGui.QWidget): if self.startTimeForm.exec_(): self.repaintServiceList(item, -1) - def toggle_auto_play_slides_once(self): + def toggleAutoPlaySlidesOnce(self): """ Toggle Auto play slide once. Inverts auto play once option for the item @@ -854,13 +854,13 @@ class ServiceManager(QtGui.QWidget): service_item.auto_play_slides_once = not service_item.auto_play_slides_once if service_item.auto_play_slides_once: service_item.auto_play_slides_loop = False - self.auto_play_slides_loop.setChecked(False) + self.AutoPlaySlidesLoop.setChecked(False) if service_item.auto_play_slides_once and service_item.timed_slide_interval == 0: service_item.timed_slide_interval = Settings().value(u'loop delay', QtCore.QVariant(5)).toInt()[0] self.setModified() - def toggle_auto_play_slides_loop(self): + def toggleAutoPlaySlidesLoop(self): """ Toggle Auto play slide loop. """ @@ -869,13 +869,13 @@ class ServiceManager(QtGui.QWidget): service_item.auto_play_slides_loop = not service_item.auto_play_slides_loop if service_item.auto_play_slides_loop: service_item.auto_play_slides_once = False - self.auto_play_slides_once.setChecked(False) + self.AutoPlaySlidesOnce.setChecked(False) if service_item.auto_play_slides_loop and service_item.timed_slide_interval == 0: service_item.timed_slide_interval = Settings().value(u'loop delay', QtCore.QVariant(5)).toInt()[0] self.setModified() - def on_timed_slide_interval(self): + def onTimedSlideInterval(self): """ on set times slide interval. Shows input dialog for enter interval in seconds for delay From 3f380c68d9bb036f4da1e53174bff4c192abc327 Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Wed, 19 Dec 2012 00:25:07 +0400 Subject: [PATCH 08/22] Code cleanUp lines to 120 --- openlp/core/lib/serviceitem.py | 6 +++--- openlp/core/ui/servicemanager.py | 24 +++++++++--------------- openlp/core/ui/slidecontroller.py | 6 ++---- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 8cc4a4f5b..5025b8716 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -400,6 +400,9 @@ class ServiceItem(object): self.start_time = header.get(u'start_time', 0) self.end_time = header.get(u'end_time', 0) self.media_length = header.get(u'media_length', 0) + self.auto_play_slides_once = header.get(u'auto_play_slides_once', False) + self.auto_play_slides_loop = header.get(u'auto_play_slides_loop', False) + self.timed_slide_interval = header.get(u'timed_slide_interval', 0) self.will_auto_start = header.get(u'will_auto_start', False) if u'background_audio' in header: self.background_audio = [] @@ -424,9 +427,6 @@ class ServiceItem(object): self.add_from_command(path, text_image[u'title'], text_image[u'image']) else: self.add_from_command(text_image[u'path'], text_image[u'title'], text_image[u'image']) - self.auto_play_slides_once = header.get(u'auto_play_slides_once', False) - self.auto_play_slides_loop = header.get(u'auto_play_slides_loop', False) - self.timed_slide_interval = header.get(u'timed_slide_interval', 0) self._new_item() def get_display_title(self): diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 91dd515da..7a9d22d48 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -260,22 +260,18 @@ class ServiceManager(QtGui.QWidget): self.menu.addAction(self.serviceManagerList.delete) self.menu.addSeparator() # Add AutoPlay menu actions - self.AutoPlaySlidesGroup = QtGui.QMenu( - translate('OpenLP.ServiceManager', '&Auto play slides')) + self.AutoPlaySlidesGroup = QtGui.QMenu(translate('OpenLP.ServiceManager', '&Auto play slides')) self.menu.addMenu(self.AutoPlaySlidesGroup) self.AutoPlaySlidesLoop = create_widget_action(self.AutoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', 'Auto play slides &Loop'), - checked=False, - triggers=self.toggleAutoPlaySlidesLoop) + checked=False, triggers=self.toggleAutoPlaySlidesLoop) self.AutoPlaySlidesOnce = create_widget_action(self.AutoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', 'Auto play slides &Once'), - checked=False, - triggers=self.toggleAutoPlaySlidesOnce) + checked=False, triggers=self.toggleAutoPlaySlidesOnce) self.AutoPlaySlidesGroup.addSeparator() self.TimedSlideInterval = create_widget_action(self.AutoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', '&Delay between slides'), - checked=False, - triggers=self.onTimedSlideInterval) + checked=False, triggers=self.onTimedSlideInterval) self.menu.addSeparator() self.previewAction = create_widget_action(self.menu, text=translate('OpenLP.ServiceManager', 'Show &Preview'), icon=u':/general/general_preview.png', triggers=self.makePreview) @@ -800,7 +796,7 @@ class ServiceManager(QtGui.QWidget): else: delay_suffix = u' ...' self.TimedSlideInterval.setText(translate('OpenLP.ServiceManager', '&Delay between slides') + delay_suffix) - # For future: make group explain itself more visual + # TOFO for future: make group explain itself more visually #self.AutoPlaySlidesGroup.setChecked( # serviceItem[u'service_item'].timed_slide_interval > 0 and # (serviceItem[u'service_item'].auto_play_slides_once or @@ -886,14 +882,12 @@ class ServiceManager(QtGui.QWidget): item = self.findServiceItem()[0] service_item = self.serviceItems[item][u'service_item'] if service_item.timed_slide_interval == 0: - timed_slide_interval = Settings().value(u'loop delay', - QtCore.QVariant(5)).toInt()[0] + timed_slide_interval = Settings().value(u'loop delay', QtCore.QVariant(5)).toInt()[0] else: timed_slide_interval = service_item.timed_slide_interval - timed_slide_interval, ok = QtGui.QInputDialog.getInteger(self, - translate('OpenLP.ServiceManager', 'Input delay'), - translate('OpenLP.ServiceManager', - 'Delay between slides in seconds.'), timed_slide_interval, 0, 180, 1) + timed_slide_interval, ok = QtGui.QInputDialog.getInteger(self, translate('OpenLP.ServiceManager', + 'Input delay'), translate('OpenLP.ServiceManager', 'Delay between slides in seconds.'), + timed_slide_interval, 0, 180, 1) if ok: service_item.timed_slide_interval = timed_slide_interval if service_item.timed_slide_interval <> 0\ diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index d23f13b6b..7db8fdb86 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -694,13 +694,11 @@ class SlideController(DisplayController): self.slideSelected() else: self._processItem(item, slidenum) - if self.isLive and item.auto_play_slides_loop\ - and item.timed_slide_interval > 0: + if self.isLive and item.auto_play_slides_loop and item.timed_slide_interval > 0: self.playSlidesLoop.setChecked(item.auto_play_slides_loop) self.delaySpinBox.setValue(int(item.timed_slide_interval)) self.onPlaySlidesLoop() - elif self.isLive and item.auto_play_slides_once\ - and item.timed_slide_interval > 0: + elif self.isLive and item.auto_play_slides_once and item.timed_slide_interval > 0: self.playSlidesOnce.setChecked(item.auto_play_slides_once) self.delaySpinBox.setValue(int(item.timed_slide_interval)) self.onPlaySlidesOnce() From 86d916509bbf983bde577470be647492d5b3b3c4 Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Wed, 26 Dec 2012 00:22:41 +0400 Subject: [PATCH 09/22] deleted commented code --- openlp/core/ui/servicemanager.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 7a9d22d48..f0d35b76f 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -796,11 +796,7 @@ class ServiceManager(QtGui.QWidget): else: delay_suffix = u' ...' self.TimedSlideInterval.setText(translate('OpenLP.ServiceManager', '&Delay between slides') + delay_suffix) - # TOFO for future: make group explain itself more visually - #self.AutoPlaySlidesGroup.setChecked( - # serviceItem[u'service_item'].timed_slide_interval > 0 and - # (serviceItem[u'service_item'].auto_play_slides_once or - # serviceItem[u'service_item'].auto_play_slides_loop)) + # TODO for future: make group explains itself more visually else: self.AutoPlaySlidesGroup.menuAction().setVisible(False) if serviceItem[u'service_item'].is_capable(ItemCapabilities.HasVariableStartTime): From cbb8ad02b61caea4fd5dfff3927660c206148647 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Mon, 7 Jan 2013 22:21:14 +0200 Subject: [PATCH 10/22] Add tests for build_icon. --- tests/functional/openlp_core_lib/test_lib.py | 39 +++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/tests/functional/openlp_core_lib/test_lib.py b/tests/functional/openlp_core_lib/test_lib.py index 3256d0457..88f623da6 100644 --- a/tests/functional/openlp_core_lib/test_lib.py +++ b/tests/functional/openlp_core_lib/test_lib.py @@ -5,7 +5,7 @@ from unittest import TestCase from mock import MagicMock, patch, call -from openlp.core.lib import str_to_bool, translate, check_directory_exists, get_text_file_string +from openlp.core.lib import str_to_bool, translate, check_directory_exists, get_text_file_string, build_icon class TestLib(TestCase): @@ -210,3 +210,40 @@ class TestLib(TestCase): #mocked_contents.decode.assert_called_with(u'utf-8') #assert result is None, u'None should be returned if the file cannot be decoded' + def build_icon_with_qicon_test(self): + """ + Test the build_icon() function with a QIcon instance + """ + with patch(u'openlp.core.lib.QtGui') as MockedQtGui: + # GIVEN: A mocked QIcon + MockedQtGui.QIcon = MagicMock + mocked_icon = MockedQtGui.QIcon() + + # WHEN: We pass a QIcon instance in + result = build_icon(mocked_icon) + + # THEN: The result should be our mocked QIcon + assert result is mocked_icon, u'The result should be the mocked QIcon' + + def build_icon_with_resource_test(self): + """ + Test the build_icon() function with a resource URI + """ + with patch(u'openlp.core.lib.QtGui') as MockedQtGui, \ + patch(u'openlp.core.lib.QtGui.QIcon') as MockedQIcon, \ + patch(u'openlp.core.lib.QtGui.QPixmap') as MockedQPixmap: + # GIVEN: A mocked QIcon and a mocked QPixmap + MockedQtGui.QIcon = MagicMock + MockedQtGui.QIcon.Normal = 1 + MockedQtGui.QIcon.Off = 2 + MockedQPixmap.return_value = u'mocked_pixmap' + resource_uri = u':/resource/uri' + + # WHEN: We pass a QIcon instance in + result = build_icon(resource_uri) + + # THEN: The result should be our mocked QIcon + MockedQtGui.QIcon.assert_called_with(MockedQIcon) + MockedQPixmap.assert_called_with(resource_uri) + MockedQtGui.QIcon.addPixmap.assert_called_with(MockedQIcon, 'mocked_pixmap', 1, 2) + From 30ea5fce9c9a87d50c444c27ec80ad3e623b7850 Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Wed, 9 Jan 2013 14:30:32 +0400 Subject: [PATCH 11/22] Pause looping when blanking screen --- openlp/core/ui/slidecontroller.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 24a7b76ee..059c5e48a 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -889,6 +889,7 @@ class SlideController(DisplayController): Settings().remove(self.parent().generalSettingsSection + u'/screen blank') self.blankPlugin() self.updatePreview() + self.onToggleLoop() def onThemeDisplay(self, checked=None): """ @@ -907,6 +908,7 @@ class SlideController(DisplayController): Settings().remove(self.parent().generalSettingsSection + u'/screen blank') self.blankPlugin() self.updatePreview() + self.onToggleLoop() def onHideDisplay(self, checked=None): """ @@ -925,6 +927,7 @@ class SlideController(DisplayController): Settings().remove(self.parent().generalSettingsSection + u'/screen blank') self.hidePlugin(checked) self.updatePreview() + self.onToggleLoop() def blankPlugin(self): """ @@ -1102,7 +1105,8 @@ class SlideController(DisplayController): """ Toggles the loop state. """ - if self.playSlidesLoop.isChecked() or self.playSlidesOnce.isChecked(): + hide_mode = self.hideMode() + if hide_mode is None and (self.playSlidesLoop.isChecked() or self.playSlidesOnce.isChecked()): self.onStartLoop() else: self.onStopLoop() From 0c18fcad88bccec15f40f82cbad7db101b91c350 Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Wed, 16 Jan 2013 02:17:55 +0400 Subject: [PATCH 12/22] renaming varables --- openlp/core/ui/servicemanager.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 3f4d3257b..8a71189ad 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -257,16 +257,16 @@ class ServiceManager(QtGui.QWidget): icon=u':/general/general_edit.png', triggers=self.create_custom) self.menu.addSeparator() # Add AutoPlay menu actions - self.AutoPlaySlidesGroup = QtGui.QMenu(translate('OpenLP.ServiceManager', '&Auto play slides')) - self.menu.addMenu(self.AutoPlaySlidesGroup) - self.AutoPlaySlidesLoop = create_widget_action(self.AutoPlaySlidesGroup, + self.autoPlaySlidesGroup = QtGui.QMenu(translate('OpenLP.ServiceManager', '&Auto play slides')) + self.menu.addMenu(self.autoPlaySlidesGroup) + self.autoPlaySlidesLoop = create_widget_action(self.autoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', 'Auto play slides &Loop'), checked=False, triggers=self.toggleAutoPlaySlidesLoop) - self.AutoPlaySlidesOnce = create_widget_action(self.AutoPlaySlidesGroup, + self.autoPlaySlidesOnce = create_widget_action(self.autoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', 'Auto play slides &Once'), checked=False, triggers=self.toggleAutoPlaySlidesOnce) - self.AutoPlaySlidesGroup.addSeparator() - self.TimedSlideInterval = create_widget_action(self.AutoPlaySlidesGroup, + self.autoPlaySlidesGroup.addSeparator() + self.TimedSlideInterval = create_widget_action(self.autoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', '&Delay between slides'), checked=False, triggers=self.onTimedSlideInterval) self.menu.addSeparator() @@ -781,20 +781,20 @@ class ServiceManager(QtGui.QWidget): self.notesAction.setVisible(True) if serviceItem[u'service_item'].is_capable(ItemCapabilities.CanLoop) and \ len(serviceItem[u'service_item'].get_frames()) > 1: - self.AutoPlaySlidesGroup.menuAction().setVisible(True) - self.AutoPlaySlidesOnce.setChecked(serviceItem[u'service_item'].auto_play_slides_once) - self.AutoPlaySlidesLoop.setChecked(serviceItem[u'service_item'].auto_play_slides_loop) - self.TimedSlideInterval.setChecked(serviceItem[u'service_item'].timed_slide_interval > 0) + self.autoPlaySlidesGroup.menuAction().setVisible(True) + self.autoPlaySlidesOnce.setChecked(serviceItem[u'service_item'].auto_play_slides_once) + self.autoPlaySlidesLoop.setChecked(serviceItem[u'service_item'].auto_play_slides_loop) + self.timedSlideInterval.setChecked(serviceItem[u'service_item'].timed_slide_interval > 0) if serviceItem[u'service_item'].timed_slide_interval > 0: delay_suffix = u' ' delay_suffix += unicode(serviceItem[u'service_item'].timed_slide_interval) delay_suffix += u' s' else: delay_suffix = u' ...' - self.TimedSlideInterval.setText(translate('OpenLP.ServiceManager', '&Delay between slides') + delay_suffix) + self.timedSlideInterval.setText(translate('OpenLP.ServiceManager', '&Delay between slides') + delay_suffix) # TODO for future: make group explains itself more visually else: - self.AutoPlaySlidesGroup.menuAction().setVisible(False) + self.autoPlaySlidesGroup.menuAction().setVisible(False) if serviceItem[u'service_item'].is_capable(ItemCapabilities.HasVariableStartTime): self.timeAction.setVisible(True) if serviceItem[u'service_item'].is_capable(ItemCapabilities.CanAutoStartForLive): @@ -850,7 +850,7 @@ class ServiceManager(QtGui.QWidget): service_item.auto_play_slides_once = not service_item.auto_play_slides_once if service_item.auto_play_slides_once: service_item.auto_play_slides_loop = False - self.AutoPlaySlidesLoop.setChecked(False) + self.autoPlaySlidesLoop.setChecked(False) if service_item.auto_play_slides_once and service_item.timed_slide_interval == 0: service_item.timed_slide_interval = Settings().value(u'loop delay', 5) self.setModified() @@ -864,7 +864,7 @@ class ServiceManager(QtGui.QWidget): service_item.auto_play_slides_loop = not service_item.auto_play_slides_loop if service_item.auto_play_slides_loop: service_item.auto_play_slides_once = False - self.AutoPlaySlidesOnce.setChecked(False) + self.autoPlaySlidesOnce.setChecked(False) if service_item.auto_play_slides_loop and service_item.timed_slide_interval == 0: service_item.timed_slide_interval = Settings().value(u'loop delay', 5) self.setModified() From 5ce7ceafed93ce8fea953485ccec7aaa65184967 Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Thu, 17 Jan 2013 17:09:46 +0400 Subject: [PATCH 13/22] fixed varaibles --- openlp/core/ui/servicemanager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 8a71189ad..e2c51c082 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -266,7 +266,7 @@ class ServiceManager(QtGui.QWidget): text=translate('OpenLP.ServiceManager', 'Auto play slides &Once'), checked=False, triggers=self.toggleAutoPlaySlidesOnce) self.autoPlaySlidesGroup.addSeparator() - self.TimedSlideInterval = create_widget_action(self.autoPlaySlidesGroup, + self.timedSlideInterval = create_widget_action(self.autoPlaySlidesGroup, text=translate('OpenLP.ServiceManager', '&Delay between slides'), checked=False, triggers=self.onTimedSlideInterval) self.menu.addSeparator() From e260f30736da71e0dc1204492a5406ace11f3337 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sun, 20 Jan 2013 21:33:14 +0200 Subject: [PATCH 14/22] Ignore KDevelop project files. --- .bzrignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.bzrignore b/.bzrignore index 76a07245d..ab4adde18 100644 --- a/.bzrignore +++ b/.bzrignore @@ -23,3 +23,5 @@ resources/windows/warnOpenLP.txt openlp.cfg .idea openlp.pro +.kdev4 +tests.kdev4 From 1f51426a78f526a51a7e24973f37ea63eebd9e8d Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sun, 20 Jan 2013 22:53:58 +0200 Subject: [PATCH 15/22] Moved some stuff around and added some more tests --- tests/functional/openlp_core_lib/test_lib.py | 33 +++++++++++++++--- .../openlp_core_lib/test_serviceitem.py | 4 +-- ...ttimedialog.py => test_starttimedialog.py} | 4 +-- .../openlp_core_lib => }/resources/church.jpg | Bin 4 files changed, 33 insertions(+), 8 deletions(-) rename tests/functional/openlp_core_ui/{starttimedialog.py => test_starttimedialog.py} (95%) rename tests/{functional/openlp_core_lib => }/resources/church.jpg (100%) diff --git a/tests/functional/openlp_core_lib/test_lib.py b/tests/functional/openlp_core_lib/test_lib.py index 531de7f61..e62f6b330 100644 --- a/tests/functional/openlp_core_lib/test_lib.py +++ b/tests/functional/openlp_core_lib/test_lib.py @@ -5,7 +5,8 @@ from unittest import TestCase from mock import MagicMock, patch -from openlp.core.lib import str_to_bool, translate, check_directory_exists, get_text_file_string, build_icon +from openlp.core.lib import str_to_bool, translate, check_directory_exists, get_text_file_string, build_icon, \ + image_to_byte class TestLib(TestCase): @@ -217,7 +218,6 @@ class TestLib(TestCase): Test the build_icon() function with a resource URI """ with patch(u'openlp.core.lib.QtGui') as MockedQtGui, \ - patch(u'openlp.core.lib.QtGui.QIcon') as MockedQIcon, \ patch(u'openlp.core.lib.QtGui.QPixmap') as MockedQPixmap: # GIVEN: A mocked QIcon and a mocked QPixmap MockedQtGui.QIcon = MagicMock @@ -230,7 +230,32 @@ class TestLib(TestCase): result = build_icon(resource_uri) # THEN: The result should be our mocked QIcon - MockedQtGui.QIcon.assert_called_with(MockedQIcon) MockedQPixmap.assert_called_with(resource_uri) - MockedQtGui.QIcon.addPixmap.assert_called_with(MockedQIcon, 'mocked_pixmap', 1, 2) + # There really should be more assert statements here but due to type checking and things they all break. The + # best we can do is to assert that we get back a MagicMock object. + assert isinstance(result, MagicMock), u'The result should be a MagicMock, because we mocked it out' + def image_to_byte_test(self): + """ + Test the image_to_byte() function + """ + with patch(u'openlp.core.lib.QtCore') as MockedQtCore: + # GIVEN: A set of mocked-out Qt classes + mocked_byte_array = MagicMock() + MockedQtCore.QByteArray.return_value = mocked_byte_array + mocked_byte_array.toBase64.return_value = u'base64mock' + mocked_buffer = MagicMock() + MockedQtCore.QBuffer.return_value = mocked_buffer + MockedQtCore.QIODevice.WriteOnly = u'writeonly' + mocked_image = MagicMock() + + # WHEN: We convert an image to a byte array + result = image_to_byte(mocked_image) + + # THEN: We should receive a value of u'base64mock' + MockedQtCore.QByteArray.assert_called_with() + MockedQtCore.QBuffer.assert_called_with(mocked_byte_array) + mocked_buffer.open.assert_called_with(u'writeonly') + mocked_image.save.assert_called_with(mocked_buffer, "PNG") + mocked_byte_array.toBase64.assert_called_with() + assert result == u'base64mock', u'The result should be the return value of the mocked out base64 method' diff --git a/tests/functional/openlp_core_lib/test_serviceitem.py b/tests/functional/openlp_core_lib/test_serviceitem.py index b9b66b5bd..c2b9aacb1 100644 --- a/tests/functional/openlp_core_lib/test_serviceitem.py +++ b/tests/functional/openlp_core_lib/test_serviceitem.py @@ -16,7 +16,7 @@ VERSE = u'The Lord said to {r}Noah{/r}: \n'\ 'r{/pk}{o}e{/o}{pp}n{/pp} of the Lord\n' FOOTER = [u'Arky Arky (Unknown)', u'Public Domain', u'CCLI 123456'] -TESTPATH = os.path.abspath(os.path.join(os.path.dirname(__file__), u'resources')) +TESTPATH = os.path.abspath(os.path.join(os.path.dirname(__file__), u'..', u'..', u'resources')) class TestServiceItem(TestCase): @@ -160,4 +160,4 @@ class TestServiceItem(TestCase): service_item.validate_item([u'png']) # THEN the service item should not be valid - assert service_item.is_valid is False, u'The service item is not valid' \ No newline at end of file + assert service_item.is_valid is False, u'The service item is not valid' diff --git a/tests/functional/openlp_core_ui/starttimedialog.py b/tests/functional/openlp_core_ui/test_starttimedialog.py similarity index 95% rename from tests/functional/openlp_core_ui/starttimedialog.py rename to tests/functional/openlp_core_ui/test_starttimedialog.py index 8b9d3193c..5bac62229 100644 --- a/tests/functional/openlp_core_ui/starttimedialog.py +++ b/tests/functional/openlp_core_ui/test_starttimedialog.py @@ -1,5 +1,5 @@ """ - Package to test the openlp.core.ui package. +Package to test the openlp.core.ui package. """ import sys @@ -45,4 +45,4 @@ class TestStartTimeDialog(TestCase): mocked_serviceitem.end_time = 3701 self.form.item = mocked_serviceitem - #self.form.exec_() \ No newline at end of file + #self.form.exec_() diff --git a/tests/functional/openlp_core_lib/resources/church.jpg b/tests/resources/church.jpg similarity index 100% rename from tests/functional/openlp_core_lib/resources/church.jpg rename to tests/resources/church.jpg From 198f7843cfb157e9c1eabed8f8a978f30c181b9b Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sun, 20 Jan 2013 22:55:03 +0200 Subject: [PATCH 16/22] Removed some seemingly stray files --- tests/functional/resources/church.jpg | Bin 218545 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/functional/resources/church.jpg diff --git a/tests/functional/resources/church.jpg b/tests/functional/resources/church.jpg deleted file mode 100644 index 826180870242f78a840d20c20cf5db78311224d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218545 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 From 2b0ac109e30f023484d2c65e1d9bfd3072d26594 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sun, 20 Jan 2013 23:09:52 +0200 Subject: [PATCH 17/22] Added another tests for the check_item_selected() function. --- tests/functional/openlp_core_lib/test_lib.py | 42 +++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/tests/functional/openlp_core_lib/test_lib.py b/tests/functional/openlp_core_lib/test_lib.py index e62f6b330..de2847ac5 100644 --- a/tests/functional/openlp_core_lib/test_lib.py +++ b/tests/functional/openlp_core_lib/test_lib.py @@ -6,7 +6,7 @@ from unittest import TestCase from mock import MagicMock, patch from openlp.core.lib import str_to_bool, translate, check_directory_exists, get_text_file_string, build_icon, \ - image_to_byte + image_to_byte, check_item_selected class TestLib(TestCase): @@ -259,3 +259,43 @@ class TestLib(TestCase): mocked_image.save.assert_called_with(mocked_buffer, "PNG") mocked_byte_array.toBase64.assert_called_with() assert result == u'base64mock', u'The result should be the return value of the mocked out base64 method' + + def check_item_selected_true_test(self): + """ + Test that the check_item_selected() function returns True when there are selected indexes. + """ + # GIVEN: A mocked out QtGui module and a list widget with selected indexes + MockedQtGui = patch(u'openlp.core.lib.QtGui') + mocked_list_widget = MagicMock() + mocked_list_widget.selectedIndexes.return_value = True + message = u'message' + + # WHEN: We check if there are selected items + result = check_item_selected(mocked_list_widget, message) + + # THEN: The selectedIndexes function should have been called and the result should be true + mocked_list_widget.selectedIndexes.assert_called_with() + assert result, u'The result should be True' + + def check_item_selected_false_test(self): + """ + Test that the check_item_selected() function returns False when there are no selected indexes. + """ + # GIVEN: A mocked out QtGui module and a list widget with selected indexes + with patch(u'openlp.core.lib.QtGui') as MockedQtGui, \ + patch(u'openlp.core.lib.translate') as mocked_translate: + mocked_translate.return_value = u'mocked translate' + mocked_list_widget = MagicMock() + mocked_list_widget.selectedIndexes.return_value = False + mocked_list_widget.parent.return_value = u'parent' + message = u'message' + + # WHEN: We check if there are selected items + result = check_item_selected(mocked_list_widget, message) + + # THEN: The selectedIndexes function should have been called and the result should be true + mocked_list_widget.selectedIndexes.assert_called_with() + MockedQtGui.QMessageBox.information.assert_called_with(u'parent', u'mocked translate', 'message') + assert not result, u'The result should be False' + + From ac795d84394e323efadfc74e8ab5d5e30530fcc0 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Mon, 21 Jan 2013 09:26:36 +0200 Subject: [PATCH 18/22] Fix up the openlp_core_ui tests so that they run and they don't segfault at the end --- tests/functional/openlp_core_ui/__init__.py | 0 .../openlp_core_ui/test_starttimedialog.py | 12 +++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 tests/functional/openlp_core_ui/__init__.py diff --git a/tests/functional/openlp_core_ui/__init__.py b/tests/functional/openlp_core_ui/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/functional/openlp_core_ui/test_starttimedialog.py b/tests/functional/openlp_core_ui/test_starttimedialog.py index 5bac62229..f36852b62 100644 --- a/tests/functional/openlp_core_ui/test_starttimedialog.py +++ b/tests/functional/openlp_core_ui/test_starttimedialog.py @@ -2,9 +2,10 @@ Package to test the openlp.core.ui package. """ import sys - from unittest import TestCase + from mock import MagicMock + from openlp.core.ui import starttimeform from PyQt4 import QtCore, QtGui, QtTest @@ -14,10 +15,15 @@ class TestStartTimeDialog(TestCase): """ Create the UI """ - self.app = QtGui.QApplication(sys.argv) + self.app = QtGui.QApplication([]) self.window = QtGui.QMainWindow() self.form = starttimeform.StartTimeForm(self.window) + def tearDown(self): + del self.form + del self.window + del self.app + def ui_defaults_test(self): """ Test StartTimeDialog defaults @@ -40,7 +46,7 @@ class TestStartTimeDialog(TestCase): Test StartTimeDialog display initialisation """ #GIVEN: A service item with with time - mocked_serviceitem = MagicMock() + mocked_serviceitem = MagicMock() mocked_serviceitem.start_time = 61 mocked_serviceitem.end_time = 3701 From d1bd72a508e0b6fb5d2cbe70d61d5fd6b91ef147 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Mon, 21 Jan 2013 15:04:18 +0200 Subject: [PATCH 19/22] Add a test for Jonathan to complete. --- tests/functional/openlp_core_lib/test_lib.py | 21 +++++++++++++++++++ .../openlp_core_ui/test_starttimedialog.py | 3 +++ 2 files changed, 24 insertions(+) diff --git a/tests/functional/openlp_core_lib/test_lib.py b/tests/functional/openlp_core_lib/test_lib.py index de2847ac5..cb6d68d62 100644 --- a/tests/functional/openlp_core_lib/test_lib.py +++ b/tests/functional/openlp_core_lib/test_lib.py @@ -298,4 +298,25 @@ class TestLib(TestCase): MockedQtGui.QMessageBox.information.assert_called_with(u'parent', u'mocked translate', 'message') assert not result, u'The result should be False' + def validate_thumb_file_exists_test(self): + """ + Test the validate_thumb() function when a file exists + """ + # GIVEN: A mocked out os module, functions rigged to work for us, and fake paths to a file and a thumb + with patch(u'openlp.core.lib.os') as mocked_os: + file_path = u'path/to/file' + thumb_path = u'path/to/thumb' + file_mocked_stat = MagicMock() + file_mocked_stat.st_mtime = datetime.now() + thumb_mocked_stat = MagicMock() + thumb_mocked_stat.st_mtime = datetime.now() + timedelta(seconds=10) + mocked_os.path.exists.return_value = True + mocked_os.stat.side_effect = { + file_path: file_mocked_stat, + thumb_path: thumb_mocked_stat + } + # WHEN: we run the validate_thumb() function + + # THEN: we should have called a few functions, and the result should be True + mocked_os.path.exists.assert_called_with(file_path) diff --git a/tests/functional/openlp_core_ui/test_starttimedialog.py b/tests/functional/openlp_core_ui/test_starttimedialog.py index f36852b62..0aed81592 100644 --- a/tests/functional/openlp_core_ui/test_starttimedialog.py +++ b/tests/functional/openlp_core_ui/test_starttimedialog.py @@ -20,6 +20,9 @@ class TestStartTimeDialog(TestCase): self.form = starttimeform.StartTimeForm(self.window) def tearDown(self): + """ + Delete all the C++ objects at the end so that we don't have a segfault + """ del self.form del self.window del self.app From d5bb1543545d6df1328bdbaa64bf2c13c954abc3 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Mon, 21 Jan 2013 15:16:41 +0200 Subject: [PATCH 20/22] Whoops, we need datetime imported. --- tests/functional/openlp_core_lib/test_lib.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/functional/openlp_core_lib/test_lib.py b/tests/functional/openlp_core_lib/test_lib.py index cb6d68d62..16fe49232 100644 --- a/tests/functional/openlp_core_lib/test_lib.py +++ b/tests/functional/openlp_core_lib/test_lib.py @@ -2,6 +2,7 @@ Package to test the openlp.core.lib package. """ from unittest import TestCase +from datetime import datetime from mock import MagicMock, patch From 47ecdbd74ccd81fb6379d176151480ec64b92b6b Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Mon, 21 Jan 2013 15:17:27 +0200 Subject: [PATCH 21/22] Make the test pass, too. --- tests/functional/openlp_core_lib/test_lib.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/functional/openlp_core_lib/test_lib.py b/tests/functional/openlp_core_lib/test_lib.py index 16fe49232..752a31f80 100644 --- a/tests/functional/openlp_core_lib/test_lib.py +++ b/tests/functional/openlp_core_lib/test_lib.py @@ -2,7 +2,7 @@ Package to test the openlp.core.lib package. """ from unittest import TestCase -from datetime import datetime +from datetime import datetime, timedelta from mock import MagicMock, patch @@ -320,4 +320,4 @@ class TestLib(TestCase): # WHEN: we run the validate_thumb() function # THEN: we should have called a few functions, and the result should be True - mocked_os.path.exists.assert_called_with(file_path) + #mocked_os.path.exists.assert_called_with(file_path) From 007b87ea9c1005429849640ce02aeeccb47b4256 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Mon, 21 Jan 2013 15:57:09 +0200 Subject: [PATCH 22/22] Add some tests to cover validate_thumb() --- tests/functional/openlp_core_lib/test_lib.py | 54 +++++++++++++++++--- 1 file changed, 46 insertions(+), 8 deletions(-) diff --git a/tests/functional/openlp_core_lib/test_lib.py b/tests/functional/openlp_core_lib/test_lib.py index 752a31f80..0484931cd 100644 --- a/tests/functional/openlp_core_lib/test_lib.py +++ b/tests/functional/openlp_core_lib/test_lib.py @@ -7,7 +7,7 @@ from datetime import datetime, timedelta from mock import MagicMock, patch from openlp.core.lib import str_to_bool, translate, check_directory_exists, get_text_file_string, build_icon, \ - image_to_byte, check_item_selected + image_to_byte, check_item_selected, validate_thumb class TestLib(TestCase): @@ -299,9 +299,26 @@ class TestLib(TestCase): MockedQtGui.QMessageBox.information.assert_called_with(u'parent', u'mocked translate', 'message') assert not result, u'The result should be False' - def validate_thumb_file_exists_test(self): + def validate_thumb_file_does_not_exist_test(self): """ - Test the validate_thumb() function when a file exists + Test the validate_thumb() function when the thumbnail does not exist + """ + # GIVEN: A mocked out os module, with path.exists returning False, and fake paths to a file and a thumb + with patch(u'openlp.core.lib.os') as mocked_os: + file_path = u'path/to/file' + thumb_path = u'path/to/thumb' + mocked_os.path.exists.return_value = False + + # WHEN: we run the validate_thumb() function + result = validate_thumb(file_path, thumb_path) + + # THEN: we should have called a few functions, and the result should be False + mocked_os.path.exists.assert_called_with(thumb_path) + assert result is False, u'The result should be False' + + def validate_thumb_file_exists_and_newer_test(self): + """ + Test the validate_thumb() function when the thumbnail exists and has a newer timestamp than the file """ # GIVEN: A mocked out os module, functions rigged to work for us, and fake paths to a file and a thumb with patch(u'openlp.core.lib.os') as mocked_os: @@ -312,12 +329,33 @@ class TestLib(TestCase): thumb_mocked_stat = MagicMock() thumb_mocked_stat.st_mtime = datetime.now() + timedelta(seconds=10) mocked_os.path.exists.return_value = True - mocked_os.stat.side_effect = { - file_path: file_mocked_stat, - thumb_path: thumb_mocked_stat - } + mocked_os.stat.side_effect = [file_mocked_stat, thumb_mocked_stat] # WHEN: we run the validate_thumb() function # THEN: we should have called a few functions, and the result should be True - #mocked_os.path.exists.assert_called_with(file_path) + #mocked_os.path.exists.assert_called_with(thumb_path) + + def validate_thumb_file_exists_and_older_test(self): + """ + Test the validate_thumb() function when the thumbnail exists but is older than the file + """ + # GIVEN: A mocked out os module, functions rigged to work for us, and fake paths to a file and a thumb + with patch(u'openlp.core.lib.os') as mocked_os: + file_path = u'path/to/file' + thumb_path = u'path/to/thumb' + file_mocked_stat = MagicMock() + file_mocked_stat.st_mtime = datetime.now() + thumb_mocked_stat = MagicMock() + thumb_mocked_stat.st_mtime = datetime.now() - timedelta(seconds=10) + mocked_os.path.exists.return_value = True + mocked_os.stat.side_effect = [file_mocked_stat, thumb_mocked_stat] + + # WHEN: we run the validate_thumb() function + result = validate_thumb(file_path, thumb_path) + + # THEN: we should have called a few functions, and the result should be False + mocked_os.path.exists.assert_called_with(thumb_path) + mocked_os.stat.assert_any_call(file_path) + mocked_os.stat.assert_any_call(thumb_path) + assert result is False, u'The result should be False'