forked from openlp/openlp
Merge branch 'fix_song_editor_crash' into 'master'
Fix song editor crash Closes #459 See merge request openlp/openlp!150
This commit is contained in:
commit
050e49465e
@ -1330,7 +1330,6 @@ class ServiceManager(QtWidgets.QWidget, RegistryBase, Ui_ServiceManager, LogMixi
|
|||||||
"""
|
"""
|
||||||
for item_count, item in enumerate(self.service_items):
|
for item_count, item in enumerate(self.service_items):
|
||||||
if item['service_item'].edit_id == new_item.edit_id and item['service_item'].name == new_item.name:
|
if item['service_item'].edit_id == new_item.edit_id and item['service_item'].name == new_item.name:
|
||||||
new_item.create_slides()
|
|
||||||
new_item.merge(item['service_item'])
|
new_item.merge(item['service_item'])
|
||||||
item['service_item'] = new_item
|
item['service_item'] = new_item
|
||||||
self.repaint_service_list(item_count + 1, 0)
|
self.repaint_service_list(item_count + 1, 0)
|
||||||
|
@ -419,6 +419,21 @@ class TestServiceManager(TestCase, TestMixin):
|
|||||||
# 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()
|
self.service_manager.on_move_selection_up.assert_called_once_with()
|
||||||
|
|
||||||
|
def test_delete_selection_on_delete_key(self):
|
||||||
|
"""
|
||||||
|
Test that a delete key press event calls the on_delete_from_service function
|
||||||
|
"""
|
||||||
|
# GIVEN a mocked on_delete_from_service function
|
||||||
|
self.service_manager.on_delete_from_service = MagicMock()
|
||||||
|
|
||||||
|
# WHEN the delete key event is called
|
||||||
|
self.service_manager.setup_ui(self.service_manager)
|
||||||
|
event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Delete, QtCore.Qt.NoModifier)
|
||||||
|
self.service_manager.service_manager_list.keyPressEvent(event)
|
||||||
|
|
||||||
|
# THEN the on_delete_from_service function should have been called.
|
||||||
|
self.service_manager.on_delete_from_service.assert_called_once_with()
|
||||||
|
|
||||||
def _setup_service_manager_list(self):
|
def _setup_service_manager_list(self):
|
||||||
self.service_manager.expanded = MagicMock()
|
self.service_manager.expanded = MagicMock()
|
||||||
self.service_manager.collapsed = MagicMock()
|
self.service_manager.collapsed = MagicMock()
|
||||||
@ -496,3 +511,35 @@ class TestServiceManager(TestCase, TestMixin):
|
|||||||
assert self.service_manager.service_manager_list.currentItem() == song_item, \
|
assert self.service_manager.service_manager_list.currentItem() == song_item, \
|
||||||
'Top item should have been selected'
|
'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)
|
||||||
|
|
||||||
|
def test_replace_service_item(self):
|
||||||
|
"""
|
||||||
|
Tests that the replace_service_item function replaces items as expected
|
||||||
|
"""
|
||||||
|
# GIVEN a service item list and a new item which name and edit_id match a service item
|
||||||
|
self.service_manager.repaint_service_list = MagicMock()
|
||||||
|
Registry().register('live_controller', MagicMock())
|
||||||
|
item1 = MagicMock()
|
||||||
|
item1.edit_id = 'abcd'
|
||||||
|
item1.name = 'itemA'
|
||||||
|
item2 = MagicMock()
|
||||||
|
item2.edit_id = 'abcd'
|
||||||
|
item2.name = 'itemB'
|
||||||
|
item3 = MagicMock()
|
||||||
|
item3.edit_id = 'cfgh'
|
||||||
|
item3.name = 'itemA'
|
||||||
|
self.service_manager.service_items = [
|
||||||
|
{'service_item': item1},
|
||||||
|
{'service_item': item2},
|
||||||
|
{'service_item': item3}
|
||||||
|
]
|
||||||
|
new_item = MagicMock()
|
||||||
|
new_item.edit_id = 'abcd'
|
||||||
|
new_item.name = 'itemA'
|
||||||
|
|
||||||
|
# WHEN replace_service_item is called
|
||||||
|
self.service_manager.replace_service_item(new_item)
|
||||||
|
|
||||||
|
# THEN new_item should replace item1, and only replaces that one item
|
||||||
|
assert self.service_manager.service_items[0]['service_item'] == new_item
|
||||||
|
new_item.merge.assert_called_once_with(item1)
|
||||||
|
Loading…
Reference in New Issue
Block a user