From 524d8f3acbe36f8cc6ce9978427c88039c7251fa Mon Sep 17 00:00:00 2001 From: VirBinarus Date: Tue, 13 Jun 2017 16:49:48 +0100 Subject: [PATCH 1/8] fixed bug #1238385, but no tests Fixes: https://launchpad.net/bugs/1238385 --- openlp/core/ui/servicemanager.py | 37 ++++++++++++++++++ .../openlp_core_ui/test_servicemanager.py | 39 ++++++++++++++++++- 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index cf30245bf..8e6c6fd6b 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -66,6 +66,12 @@ class ServiceManagerList(QtWidgets.QTreeWidget): elif event.key() == QtCore.Qt.Key_Down: self.service_manager.on_move_selection_down() event.accept() + elif event.key() == QtCore.Qt.Key_Right: + self.service_manager.on_expand_selection() + event.accept() + elif event.key() == QtCore.Qt.Key_Left: + self.service_manager.on_collapse_selection() + event.accept() elif event.key() == QtCore.Qt.Key_Delete: self.service_manager.on_delete_from_service() event.accept() @@ -1119,6 +1125,37 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtWidgets.QWidget, Ui_ServiceMa return self.service_manager_list.setCurrentItem(item_after) + def on_expand_selection(self): + """ + Expands cursor selection on the window. Called by the right arrow + """ + item = self.service_manager_list.currentItem() + + if item.childCount(): # Since we only have 2 levels we find them by checking for children + if not self.service_manager_list.isExpanded(self.service_manager_list.currentIndex()): + self.service_manager_list.expandItem(item) + self.service_manager.expanded(item) + # If not expanded, Expand it + + self.service_manager_list.setCurrentItem(self.service_manager_list.itemBelow(item)) + # Then move selection down to child whether it needed to be expanded or not + + def on_collapse_selection(self): + """ + Collapses cursor selection on the window Called by the left arrow + """ + item = self.service_manager_list.currentItem() + + if item.childCount(): # Since we only have 2 levels we find them by checking for children + if self.service_manager_list.isExpanded(self.service_manager_list.currentIndex()): + self.service_manager_list.collapseItem(item) + self.service_manager.collapsed(item) + + else: # If selection is lower level + self.service_manager_list.collapseItem(item.parent()) + self.service_manager.collapsed(item.parent()) + self.service_manager_list.setCurrentItem(item.parent()) + def on_collapse_all(self, field=None): """ Collapse all the service items. diff --git a/tests/interfaces/openlp_core_ui/test_servicemanager.py b/tests/interfaces/openlp_core_ui/test_servicemanager.py index 10e928bc2..4e84e4035 100644 --- a/tests/interfaces/openlp_core_ui/test_servicemanager.py +++ b/tests/interfaces/openlp_core_ui/test_servicemanager.py @@ -28,9 +28,11 @@ from unittest.mock import MagicMock, patch from openlp.core.common import Registry from openlp.core.lib import ScreenList, ServiceItem, ItemCapabilities from openlp.core.ui.mainwindow import MainWindow +from openlp.core.ui.servicemanager import ServiceManagerList +from openlp.core.lib.serviceitem import ServiceItem from tests.helpers.testmixin import TestMixin - +from PyQt5 import QtCore, QtGui, QtTest class TestServiceManager(TestCase, TestMixin): @@ -351,3 +353,38 @@ class TestServiceManager(TestCase, TestMixin): new_service.trigger() assert mocked_event.call_count == 1, 'The on_new_service_clicked method should have been called once' + + def test_keyboard_expand_selection(self): + """ + Test on on_expand_selection method caused by keyboard + """ + # GIVEN A collapsed song selected on the service manager. + self.service_manager.setup_ui(self.service_manager) + ServiceManagerList(self.service_manager) + + item = ServiceItem() + item.title = "test" + item.add_from_text("slide 1") + item.add_from_text("slide 2") + item.add_icon(":/plugins/plugin_songs.png") + #SongMediaItem.generate_slide_data(item) + self.service_manager.add_service_item(item) + + print(item._raw_frames) + + song_to_expand = self.service_manager.service_manager_list.topLevelItem(0) + #print(song_to_expand) + self.service_manager.service_manager_list.setCurrentItem(song_to_expand) + #print(self.service_manager.service_manager_list.currentItem()) + #print(self.service_manager.service_manager_list.topLevelItemCount()) + + # WHEN Pressing the right arrow key + #QtTest.QTest.keyPress(self.service_manager.service_manager_list, QtCore.Qt.Key_Right) + + event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress,QtCore.Qt.Key_Right,QtCore.Qt.NoModifier) + ServiceManagerList.keyPressEvent(self.service_manager,event) + + # THEN Should be expanded + selected_index = self.service_manager.service_manager_list.currentIndex() + above_selection_index = self.service_manager.service_manager_list.indexAbove(selected_index) + self.assertTrue(self.service_manager.service_manager_list.isExpanded(above_selection_index), 'Item should have been expanded') \ No newline at end of file From 9aef1cdf5dbd96d9624da76d375e77b300f41589 Mon Sep 17 00:00:00 2001 From: VirBinarus Date: Thu, 15 Jun 2017 19:05:38 +0100 Subject: [PATCH 2/8] made tests --- openlp/core/ui/servicemanager.py | 6 +- .../openlp_core_ui/test_servicemanager.py | 164 +++++++++++++++--- 2 files changed, 141 insertions(+), 29 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 8e6c6fd6b..777fc51b0 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -1131,7 +1131,8 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtWidgets.QWidget, Ui_ServiceMa """ item = self.service_manager_list.currentItem() - if item.childCount(): # Since we only have 2 levels we find them by checking for children + # Since we only have 2 levels we find them by checking for children + if item.childCount(): if not self.service_manager_list.isExpanded(self.service_manager_list.currentIndex()): self.service_manager_list.expandItem(item) self.service_manager.expanded(item) @@ -1146,7 +1147,8 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtWidgets.QWidget, Ui_ServiceMa """ item = self.service_manager_list.currentItem() - if item.childCount(): # Since we only have 2 levels we find them by checking for children + # Since we only have 2 levels we find them by checking for children + if item.childCount(): if self.service_manager_list.isExpanded(self.service_manager_list.currentIndex()): self.service_manager_list.collapseItem(item) self.service_manager.collapsed(item) diff --git a/tests/interfaces/openlp_core_ui/test_servicemanager.py b/tests/interfaces/openlp_core_ui/test_servicemanager.py index 4e84e4035..b93f75a88 100644 --- a/tests/interfaces/openlp_core_ui/test_servicemanager.py +++ b/tests/interfaces/openlp_core_ui/test_servicemanager.py @@ -32,7 +32,8 @@ from openlp.core.ui.servicemanager import ServiceManagerList from openlp.core.lib.serviceitem import ServiceItem from tests.helpers.testmixin import TestMixin -from PyQt5 import QtCore, QtGui, QtTest + +from PyQt5 import QtCore, QtGui, QtWidgets class TestServiceManager(TestCase, TestMixin): @@ -354,37 +355,146 @@ class TestServiceManager(TestCase, TestMixin): assert mocked_event.call_count == 1, 'The on_new_service_clicked method should have been called once' - def test_keyboard_expand_selection(self): - """ - Test on on_expand_selection method caused by keyboard - """ - # GIVEN A collapsed song selected on the service manager. + def test_expand_selection_on_right_arrow(self): + #GIVEN a mocked expand function + self.service_manager.on_expand_selection = MagicMock() + + #WHEN the right arrow key event is called self.service_manager.setup_ui(self.service_manager) - ServiceManagerList(self.service_manager) + event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Right, QtCore.Qt.NoModifier) + self.service_manager.service_manager_list.keyPressEvent(event) - item = ServiceItem() - item.title = "test" - item.add_from_text("slide 1") - item.add_from_text("slide 2") - item.add_icon(":/plugins/plugin_songs.png") - #SongMediaItem.generate_slide_data(item) - self.service_manager.add_service_item(item) + #THEN the on_expand_selection function should have been called. + self.service_manager.on_expand_selection.assert_called_once_with() - print(item._raw_frames) + def test_collapse_selection_on_left_arrow(self): + #GIVEN a mocked collapse function + self.service_manager.on_collapse_selection = MagicMock() - song_to_expand = self.service_manager.service_manager_list.topLevelItem(0) - #print(song_to_expand) - self.service_manager.service_manager_list.setCurrentItem(song_to_expand) - #print(self.service_manager.service_manager_list.currentItem()) - #print(self.service_manager.service_manager_list.topLevelItemCount()) + #WHEN the left arrow key event is called + self.service_manager.setup_ui(self.service_manager) + event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Left, QtCore.Qt.NoModifier) + self.service_manager.service_manager_list.keyPressEvent(event) - # WHEN Pressing the right arrow key - #QtTest.QTest.keyPress(self.service_manager.service_manager_list, QtCore.Qt.Key_Right) + #THEN the on_collapse_selection function should have been called. + self.service_manager.on_collapse_selection.assert_called_once_with() - event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress,QtCore.Qt.Key_Right,QtCore.Qt.NoModifier) - ServiceManagerList.keyPressEvent(self.service_manager,event) + def test_move_selection_down_on_down_arrow(self): + #GIVEN a mocked move down function + self.service_manager.on_move_selection_down = MagicMock() + + #WHEN the down arrow key event is called + self.service_manager.setup_ui(self.service_manager) + event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Down, QtCore.Qt.NoModifier) + self.service_manager.service_manager_list.keyPressEvent(event) + + #THEN the on_move_selection_down function should have been called. + self.service_manager.on_move_selection_down.assert_called_once_with() + + def test_move_selection_up_on_up_arrow(self): + #GIVEN a mocked move up function + self.service_manager.on_move_selection_up = MagicMock() + + #WHEN the up arrow key event is called + self.service_manager.setup_ui(self.service_manager) + event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Up, QtCore.Qt.NoModifier) + self.service_manager.service_manager_list.keyPressEvent(event) + + #THEN the on_move_selection_up function should have been called. + self.service_manager.on_move_selection_up.assert_called_once_with() + + def test_on_expand_selection(self): + + #GIVEN a mocked servicemanager list + self.service_manager.expanded = MagicMock() + + verse_1 = QtWidgets.QTreeWidgetItem(0) + verse_2 = QtWidgets.QTreeWidgetItem(0) + song_item = QtWidgets.QTreeWidgetItem(0) + song_item.addChild(verse_1) + song_item.addChild(verse_2) + + self.service_manager.setup_ui(self.service_manager) + self.service_manager.service_manager_list.addTopLevelItem(song_item) + + self.service_manager.service_manager_list.setCurrentItem(song_item) + + #Reset expanded function in case it has been called and/or changed in initialisation of the service manager. + self.service_manager.expanded = MagicMock() + + #WHEN on_expand_selection is called + self.service_manager.on_expand_selection() + + #THEN selection should be expanded - # THEN Should be expanded selected_index = self.service_manager.service_manager_list.currentIndex() - above_selection_index = self.service_manager.service_manager_list.indexAbove(selected_index) - self.assertTrue(self.service_manager.service_manager_list.isExpanded(above_selection_index), 'Item should have been expanded') \ No newline at end of file + above_selected_index = self.service_manager.service_manager_list.indexAbove(selected_index) + self.assertTrue(self.service_manager.service_manager_list.isExpanded(above_selected_index), + 'Item should have been expanded') + self.service_manager.expanded.assert_called_once() + + def test_on_collapse_selection_with_parent_selected(self): + # GIVEN a mocked servicemanager list + self.service_manager.expanded = MagicMock() + self.service_manager.collapsed = MagicMock() + + verse_1 = QtWidgets.QTreeWidgetItem(0) + verse_2 = QtWidgets.QTreeWidgetItem(0) + song_item = QtWidgets.QTreeWidgetItem(0) + song_item.addChild(verse_1) + song_item.addChild(verse_2) + + self.service_manager.setup_ui(self.service_manager) + self.service_manager.service_manager_list.addTopLevelItem(song_item) + + self.service_manager.service_manager_list.setCurrentItem(song_item) + self.service_manager.service_manager_list.expandItem(song_item) + + # Reset collapsed function in case it has been called and/or changed in initialisation of the service manager. + self.service_manager.collapsed = MagicMock() + + # WHEN on_expand_selection is called + self.service_manager.on_collapse_selection() + + # THEN selection should be expanded + + selected_index = self.service_manager.service_manager_list.currentIndex() + self.assertFalse(self.service_manager.service_manager_list.isExpanded(selected_index), + 'Item should have been collapsed') + self.assertTrue(self.service_manager.service_manager_list.currentItem() == song_item, + 'Top item should have been selected') + self.service_manager.collapsed.assert_called_once() + + def test_on_collapse_selection_with_child_selected(self): + # GIVEN a mocked servicemanager list + self.service_manager.expanded = MagicMock() + self.service_manager.collapsed = MagicMock() + + verse_1 = QtWidgets.QTreeWidgetItem(0) + verse_2 = QtWidgets.QTreeWidgetItem(0) + song_item = QtWidgets.QTreeWidgetItem(0) + song_item.addChild(verse_1) + song_item.addChild(verse_2) + + self.service_manager.setup_ui(self.service_manager) + self.service_manager.service_manager_list.addTopLevelItem(song_item) + + self.service_manager.service_manager_list.setCurrentItem(verse_2) + self.service_manager.service_manager_list.expandItem(song_item) + + # Reset collapsed function in case it has been called and/or changed in initialisation of the service manager. + self.service_manager.collapsed = MagicMock() + + # WHEN on_expand_selection is called + self.service_manager.on_collapse_selection() + + # THEN selection should be expanded + + selected_index = self.service_manager.service_manager_list.currentIndex() + self.assertFalse(self.service_manager.service_manager_list.isExpanded(selected_index), + 'Item should have been collapsed') + self.assertTrue(self.service_manager.service_manager_list.currentItem() == song_item, + 'Top item should have been selected') + self.service_manager.collapsed.assert_called_once() + + \ No newline at end of file From 26275566eafec065541c9febf4611b7b1fd356f5 Mon Sep 17 00:00:00 2001 From: VirBinarus Date: Thu, 15 Jun 2017 19:10:09 +0100 Subject: [PATCH 3/8] bzr thinks I've modified it so this is to make sure --- tests/interfaces/openlp_core_ui/test_servicemanager.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/interfaces/openlp_core_ui/test_servicemanager.py b/tests/interfaces/openlp_core_ui/test_servicemanager.py index b93f75a88..2c30e251a 100644 --- a/tests/interfaces/openlp_core_ui/test_servicemanager.py +++ b/tests/interfaces/openlp_core_ui/test_servicemanager.py @@ -497,4 +497,3 @@ class TestServiceManager(TestCase, TestMixin): 'Top item should have been selected') self.service_manager.collapsed.assert_called_once() - \ No newline at end of file From 462bc6e051cc3a89f6eb4694c3ff97553e21e2db Mon Sep 17 00:00:00 2001 From: VirBinarus Date: Thu, 22 Jun 2017 21:24:43 +0100 Subject: [PATCH 4/8] fixed tests --- tests/interfaces/openlp_core_ui/test_servicemanager.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/interfaces/openlp_core_ui/test_servicemanager.py b/tests/interfaces/openlp_core_ui/test_servicemanager.py index 2c30e251a..6c2f3a83a 100644 --- a/tests/interfaces/openlp_core_ui/test_servicemanager.py +++ b/tests/interfaces/openlp_core_ui/test_servicemanager.py @@ -431,7 +431,7 @@ class TestServiceManager(TestCase, TestMixin): above_selected_index = self.service_manager.service_manager_list.indexAbove(selected_index) self.assertTrue(self.service_manager.service_manager_list.isExpanded(above_selected_index), 'Item should have been expanded') - self.service_manager.expanded.assert_called_once() + self.service_manager.expanded.assert_called_once_with(song_item) def test_on_collapse_selection_with_parent_selected(self): # GIVEN a mocked servicemanager list @@ -463,7 +463,7 @@ class TestServiceManager(TestCase, TestMixin): 'Item should have been collapsed') self.assertTrue(self.service_manager.service_manager_list.currentItem() == song_item, 'Top item should have been selected') - self.service_manager.collapsed.assert_called_once() + self.service_manager.collapsed.assert_called_once_with(song_item) def test_on_collapse_selection_with_child_selected(self): # GIVEN a mocked servicemanager list @@ -495,5 +495,5 @@ class TestServiceManager(TestCase, TestMixin): 'Item should have been collapsed') self.assertTrue(self.service_manager.service_manager_list.currentItem() == song_item, 'Top item should have been selected') - self.service_manager.collapsed.assert_called_once() + self.service_manager.collapsed.assert_called_once_with(song_item) From 36b965325f4d5fe9c8a3440b865e0bfc8769effc Mon Sep 17 00:00:00 2001 From: VirBinarus Date: Thu, 22 Jun 2017 21:42:46 +0100 Subject: [PATCH 5/8] formatted test_servicemanager.py to make jenkins happy --- .../openlp_core_ui/test_servicemanager.py | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/interfaces/openlp_core_ui/test_servicemanager.py b/tests/interfaces/openlp_core_ui/test_servicemanager.py index 6c2f3a83a..6ae6b2a24 100644 --- a/tests/interfaces/openlp_core_ui/test_servicemanager.py +++ b/tests/interfaces/openlp_core_ui/test_servicemanager.py @@ -35,6 +35,7 @@ from tests.helpers.testmixin import TestMixin from PyQt5 import QtCore, QtGui, QtWidgets + class TestServiceManager(TestCase, TestMixin): def setUp(self): @@ -356,6 +357,9 @@ class TestServiceManager(TestCase, TestMixin): assert mocked_event.call_count == 1, 'The on_new_service_clicked method should have been called once' def test_expand_selection_on_right_arrow(self): + """ + Test that a right arrow key press event calls the on_expand_selection function + """ #GIVEN a mocked expand function self.service_manager.on_expand_selection = MagicMock() @@ -368,6 +372,9 @@ class TestServiceManager(TestCase, TestMixin): self.service_manager.on_expand_selection.assert_called_once_with() def test_collapse_selection_on_left_arrow(self): + """ + Test that a left arrow key press event calls the on_collapse_selection function + """ #GIVEN a mocked collapse function self.service_manager.on_collapse_selection = MagicMock() @@ -380,6 +387,9 @@ class TestServiceManager(TestCase, TestMixin): self.service_manager.on_collapse_selection.assert_called_once_with() def test_move_selection_down_on_down_arrow(self): + """ + Test that a down arrow key press event calls the on_move_selection_down function + """ #GIVEN a mocked move down function self.service_manager.on_move_selection_down = MagicMock() @@ -392,6 +402,9 @@ class TestServiceManager(TestCase, TestMixin): self.service_manager.on_move_selection_down.assert_called_once_with() def test_move_selection_up_on_up_arrow(self): + """ + Test that an up arrow key press event calls the on_move_selection_up function + """ #GIVEN a mocked move up function self.service_manager.on_move_selection_up = MagicMock() @@ -404,7 +417,9 @@ class TestServiceManager(TestCase, TestMixin): self.service_manager.on_move_selection_up.assert_called_once_with() def test_on_expand_selection(self): - + """ + Test that the on_expand_selection function successfully expands an item and moves to its first child + """ #GIVEN a mocked servicemanager list self.service_manager.expanded = MagicMock() @@ -434,6 +449,10 @@ class TestServiceManager(TestCase, TestMixin): self.service_manager.expanded.assert_called_once_with(song_item) def test_on_collapse_selection_with_parent_selected(self): + """ + Test that the on_collapse_selection function successfully collapses an item + """ + # GIVEN a mocked servicemanager list self.service_manager.expanded = MagicMock() self.service_manager.collapsed = MagicMock() @@ -466,6 +485,10 @@ class TestServiceManager(TestCase, TestMixin): self.service_manager.collapsed.assert_called_once_with(song_item) def test_on_collapse_selection_with_child_selected(self): + """ + Test that the on_collapse_selection function successfully collapses child's parent item + and moves selection to its parent. + """ # GIVEN a mocked servicemanager list self.service_manager.expanded = MagicMock() self.service_manager.collapsed = MagicMock() From 82b7a568a514dad1e4c87ab7afbd104bc1e2b1b9 Mon Sep 17 00:00:00 2001 From: VirBinarus Date: Thu, 22 Jun 2017 21:49:14 +0100 Subject: [PATCH 6/8] formatted test_servicemanager.py more to make jenkins more happy --- .../openlp_core_ui/test_servicemanager.py | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/tests/interfaces/openlp_core_ui/test_servicemanager.py b/tests/interfaces/openlp_core_ui/test_servicemanager.py index 6ae6b2a24..fb9551444 100644 --- a/tests/interfaces/openlp_core_ui/test_servicemanager.py +++ b/tests/interfaces/openlp_core_ui/test_servicemanager.py @@ -360,67 +360,67 @@ class TestServiceManager(TestCase, TestMixin): """ Test that a right arrow key press event calls the on_expand_selection function """ - #GIVEN a mocked expand function + # GIVEN a mocked expand function self.service_manager.on_expand_selection = MagicMock() - #WHEN the right arrow key event is called + # WHEN the right arrow key event is called self.service_manager.setup_ui(self.service_manager) event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Right, QtCore.Qt.NoModifier) self.service_manager.service_manager_list.keyPressEvent(event) - #THEN the on_expand_selection function should have been called. + # THEN the on_expand_selection function should have been called. self.service_manager.on_expand_selection.assert_called_once_with() def test_collapse_selection_on_left_arrow(self): """ Test that a left arrow key press event calls the on_collapse_selection function """ - #GIVEN a mocked collapse function + # GIVEN a mocked collapse function self.service_manager.on_collapse_selection = MagicMock() - #WHEN the left arrow key event is called + # WHEN the left arrow key event is called self.service_manager.setup_ui(self.service_manager) event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Left, QtCore.Qt.NoModifier) self.service_manager.service_manager_list.keyPressEvent(event) - #THEN the on_collapse_selection function should have been called. + # THEN the on_collapse_selection function should have been called. self.service_manager.on_collapse_selection.assert_called_once_with() def test_move_selection_down_on_down_arrow(self): """ Test that a down arrow key press event calls the on_move_selection_down function """ - #GIVEN a mocked move down function + # GIVEN a mocked move down function self.service_manager.on_move_selection_down = MagicMock() - #WHEN the down arrow key event is called + # WHEN the down arrow key event is called self.service_manager.setup_ui(self.service_manager) event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Down, QtCore.Qt.NoModifier) self.service_manager.service_manager_list.keyPressEvent(event) - #THEN the on_move_selection_down function should have been called. + # THEN the on_move_selection_down function should have been called. self.service_manager.on_move_selection_down.assert_called_once_with() def test_move_selection_up_on_up_arrow(self): """ Test that an up arrow key press event calls the on_move_selection_up function """ - #GIVEN a mocked move up function + # GIVEN a mocked move up function self.service_manager.on_move_selection_up = MagicMock() - #WHEN the up arrow key event is called + # WHEN the up arrow key event is called self.service_manager.setup_ui(self.service_manager) event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Up, QtCore.Qt.NoModifier) self.service_manager.service_manager_list.keyPressEvent(event) - #THEN the on_move_selection_up function should have been called. + # THEN the on_move_selection_up function should have been called. self.service_manager.on_move_selection_up.assert_called_once_with() def test_on_expand_selection(self): """ Test that the on_expand_selection function successfully expands an item and moves to its first child """ - #GIVEN a mocked servicemanager list + # GIVEN a mocked servicemanager list self.service_manager.expanded = MagicMock() verse_1 = QtWidgets.QTreeWidgetItem(0) @@ -434,13 +434,13 @@ class TestServiceManager(TestCase, TestMixin): self.service_manager.service_manager_list.setCurrentItem(song_item) - #Reset expanded function in case it has been called and/or changed in initialisation of the service manager. + # Reset expanded function in case it has been called and/or changed in initialisation of the service manager. self.service_manager.expanded = MagicMock() - #WHEN on_expand_selection is called + # WHEN on_expand_selection is called self.service_manager.on_expand_selection() - #THEN selection should be expanded + # THEN selection should be expanded selected_index = self.service_manager.service_manager_list.currentIndex() above_selected_index = self.service_manager.service_manager_list.indexAbove(selected_index) @@ -518,5 +518,4 @@ class TestServiceManager(TestCase, TestMixin): 'Item should have been collapsed') self.assertTrue(self.service_manager.service_manager_list.currentItem() == song_item, 'Top item should have been selected') - self.service_manager.collapsed.assert_called_once_with(song_item) - + self.service_manager.collapsed.assert_called_once_with(song_item) \ No newline at end of file From 4d6a3ac5d5a11d71ebd1a5026082be6def5d7a34 Mon Sep 17 00:00:00 2001 From: VirBinarus Date: Thu, 22 Jun 2017 21:57:36 +0100 Subject: [PATCH 7/8] formatted test_servicemanager.py even more to make jenkins even more happy --- tests/interfaces/openlp_core_ui/test_servicemanager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/interfaces/openlp_core_ui/test_servicemanager.py b/tests/interfaces/openlp_core_ui/test_servicemanager.py index fb9551444..e9202020f 100644 --- a/tests/interfaces/openlp_core_ui/test_servicemanager.py +++ b/tests/interfaces/openlp_core_ui/test_servicemanager.py @@ -518,4 +518,4 @@ class TestServiceManager(TestCase, TestMixin): 'Item should have been collapsed') self.assertTrue(self.service_manager.service_manager_list.currentItem() == song_item, 'Top item should have been selected') - self.service_manager.collapsed.assert_called_once_with(song_item) \ No newline at end of file + self.service_manager.collapsed.assert_called_once_with(song_item) From 1ce9a53d3b9cf636b8ab5a3eba4b580fad46374d Mon Sep 17 00:00:00 2001 From: VirBinarus Date: Tue, 27 Jun 2017 18:42:54 +0100 Subject: [PATCH 8/8] removed blank lines, split up some test functions for readablilty. --- openlp/core/ui/servicemanager.py | 4 -- .../openlp_core_ui/test_servicemanager.py | 48 +++++-------------- 2 files changed, 11 insertions(+), 41 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 777fc51b0..eb304b8c1 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -1130,14 +1130,12 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtWidgets.QWidget, Ui_ServiceMa Expands cursor selection on the window. Called by the right arrow """ item = self.service_manager_list.currentItem() - # Since we only have 2 levels we find them by checking for children if item.childCount(): if not self.service_manager_list.isExpanded(self.service_manager_list.currentIndex()): self.service_manager_list.expandItem(item) self.service_manager.expanded(item) # If not expanded, Expand it - self.service_manager_list.setCurrentItem(self.service_manager_list.itemBelow(item)) # Then move selection down to child whether it needed to be expanded or not @@ -1146,13 +1144,11 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtWidgets.QWidget, Ui_ServiceMa Collapses cursor selection on the window Called by the left arrow """ item = self.service_manager_list.currentItem() - # Since we only have 2 levels we find them by checking for children if item.childCount(): if self.service_manager_list.isExpanded(self.service_manager_list.currentIndex()): self.service_manager_list.collapseItem(item) self.service_manager.collapsed(item) - else: # If selection is lower level self.service_manager_list.collapseItem(item.parent()) self.service_manager.collapsed(item.parent()) diff --git a/tests/interfaces/openlp_core_ui/test_servicemanager.py b/tests/interfaces/openlp_core_ui/test_servicemanager.py index e9202020f..635ca1774 100644 --- a/tests/interfaces/openlp_core_ui/test_servicemanager.py +++ b/tests/interfaces/openlp_core_ui/test_servicemanager.py @@ -416,24 +416,25 @@ class TestServiceManager(TestCase, TestMixin): # THEN the on_move_selection_up function should have been called. self.service_manager.on_move_selection_up.assert_called_once_with() - def test_on_expand_selection(self): - """ - Test that the on_expand_selection function successfully expands an item and moves to its first child - """ - # GIVEN a mocked servicemanager list + def _setup_service_manager_list(self): self.service_manager.expanded = MagicMock() - + self.service_manager.collapsed = MagicMock() verse_1 = QtWidgets.QTreeWidgetItem(0) verse_2 = QtWidgets.QTreeWidgetItem(0) song_item = QtWidgets.QTreeWidgetItem(0) song_item.addChild(verse_1) song_item.addChild(verse_2) - self.service_manager.setup_ui(self.service_manager) self.service_manager.service_manager_list.addTopLevelItem(song_item) + return verse_1, verse_2, song_item + def test_on_expand_selection(self): + """ + Test that the on_expand_selection function successfully expands an item and moves to its first child + """ + # GIVEN a mocked servicemanager list + verse_1, verse_2, song_item = self._setup_service_manager_list() self.service_manager.service_manager_list.setCurrentItem(song_item) - # Reset expanded function in case it has been called and/or changed in initialisation of the service manager. self.service_manager.expanded = MagicMock() @@ -441,7 +442,6 @@ class TestServiceManager(TestCase, TestMixin): self.service_manager.on_expand_selection() # THEN selection should be expanded - selected_index = self.service_manager.service_manager_list.currentIndex() above_selected_index = self.service_manager.service_manager_list.indexAbove(selected_index) self.assertTrue(self.service_manager.service_manager_list.isExpanded(above_selected_index), @@ -452,20 +452,8 @@ class TestServiceManager(TestCase, TestMixin): """ Test that the on_collapse_selection function successfully collapses an item """ - # GIVEN a mocked servicemanager list - self.service_manager.expanded = MagicMock() - self.service_manager.collapsed = MagicMock() - - verse_1 = QtWidgets.QTreeWidgetItem(0) - verse_2 = QtWidgets.QTreeWidgetItem(0) - song_item = QtWidgets.QTreeWidgetItem(0) - song_item.addChild(verse_1) - song_item.addChild(verse_2) - - self.service_manager.setup_ui(self.service_manager) - self.service_manager.service_manager_list.addTopLevelItem(song_item) - + verse_1, verse_2, song_item = self._setup_service_manager_list() self.service_manager.service_manager_list.setCurrentItem(song_item) self.service_manager.service_manager_list.expandItem(song_item) @@ -476,7 +464,6 @@ class TestServiceManager(TestCase, TestMixin): self.service_manager.on_collapse_selection() # THEN selection should be expanded - selected_index = self.service_manager.service_manager_list.currentIndex() self.assertFalse(self.service_manager.service_manager_list.isExpanded(selected_index), 'Item should have been collapsed') @@ -490,21 +477,9 @@ class TestServiceManager(TestCase, TestMixin): and moves selection to its parent. """ # GIVEN a mocked servicemanager list - self.service_manager.expanded = MagicMock() - self.service_manager.collapsed = MagicMock() - - verse_1 = QtWidgets.QTreeWidgetItem(0) - verse_2 = QtWidgets.QTreeWidgetItem(0) - song_item = QtWidgets.QTreeWidgetItem(0) - song_item.addChild(verse_1) - song_item.addChild(verse_2) - - self.service_manager.setup_ui(self.service_manager) - self.service_manager.service_manager_list.addTopLevelItem(song_item) - + verse_1, verse_2, song_item = self._setup_service_manager_list() self.service_manager.service_manager_list.setCurrentItem(verse_2) self.service_manager.service_manager_list.expandItem(song_item) - # Reset collapsed function in case it has been called and/or changed in initialisation of the service manager. self.service_manager.collapsed = MagicMock() @@ -512,7 +487,6 @@ class TestServiceManager(TestCase, TestMixin): self.service_manager.on_collapse_selection() # THEN selection should be expanded - selected_index = self.service_manager.service_manager_list.currentIndex() self.assertFalse(self.service_manager.service_manager_list.isExpanded(selected_index), 'Item should have been collapsed')