forked from openlp/openlp
head
This commit is contained in:
commit
bc7b772ed2
@ -609,4 +609,4 @@ def create_separated_list(string_list):
|
||||
last=string_list[-1])
|
||||
else:
|
||||
list_to_string = ''
|
||||
return list_to_string
|
||||
return list_to_string
|
||||
|
@ -58,6 +58,7 @@ class Ui_ChooseGroupDialog(object):
|
||||
self.choose_group_layout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.existing_radio_button)
|
||||
self.group_combobox = QtWidgets.QComboBox(choose_group_dialog)
|
||||
self.group_combobox.setObjectName('group_combobox')
|
||||
self.group_combobox.activated.connect(self.on_group_combobox_selected)
|
||||
self.choose_group_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.group_combobox)
|
||||
self.new_radio_button = QtWidgets.QRadioButton(choose_group_dialog)
|
||||
self.new_radio_button.setChecked(False)
|
||||
@ -65,6 +66,7 @@ class Ui_ChooseGroupDialog(object):
|
||||
self.choose_group_layout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.new_radio_button)
|
||||
self.new_group_edit = QtWidgets.QLineEdit(choose_group_dialog)
|
||||
self.new_group_edit.setObjectName('new_group_edit')
|
||||
self.new_group_edit.textEdited.connect(self.on_new_group_edit_changed)
|
||||
self.choose_group_layout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.new_group_edit)
|
||||
self.group_button_box = create_button_box(choose_group_dialog, 'buttonBox', ['ok'])
|
||||
self.choose_group_layout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.group_button_box)
|
||||
@ -83,3 +85,22 @@ class Ui_ChooseGroupDialog(object):
|
||||
self.nogroup_radio_button.setText(translate('ImagePlugin.ChooseGroupForm', 'No group'))
|
||||
self.existing_radio_button.setText(translate('ImagePlugin.ChooseGroupForm', 'Existing group'))
|
||||
self.new_radio_button.setText(translate('ImagePlugin.ChooseGroupForm', 'New group'))
|
||||
|
||||
def on_group_combobox_selected(self, index):
|
||||
"""
|
||||
Handles the activated signal from the existing group combobox when the
|
||||
user makes a selection
|
||||
|
||||
:param index: position of the selected item in the combobox
|
||||
"""
|
||||
self.existing_radio_button.setChecked(True)
|
||||
self.group_combobox.setFocus()
|
||||
|
||||
def on_new_group_edit_changed(self, new_group):
|
||||
"""
|
||||
Handles the textEdited signal from the new group text input field
|
||||
when the user enters a new group name
|
||||
|
||||
:param new_group: new text entered by the user
|
||||
"""
|
||||
self.new_radio_button.setChecked(True)
|
||||
|
@ -48,4 +48,5 @@ class ChooseGroupForm(QtWidgets.QDialog, Ui_ChooseGroupDialog):
|
||||
for index in range(self.group_combobox.count()):
|
||||
if self.group_combobox.itemData(index) == selected_group:
|
||||
self.group_combobox.setCurrentIndex(index)
|
||||
self.existing_radio_button.setChecked(True)
|
||||
return QtWidgets.QDialog.exec(self)
|
||||
|
@ -430,16 +430,6 @@ class ImageMediaItem(MediaManagerItem):
|
||||
if isinstance(selected_item.data(0, QtCore.Qt.UserRole), ImageGroups):
|
||||
preselect_group = selected_item.data(0, QtCore.Qt.UserRole).id
|
||||
# Enable and disable parts of the 'choose group' form
|
||||
if preselect_group is None:
|
||||
self.choose_group_form.nogroup_radio_button.setChecked(True)
|
||||
self.choose_group_form.nogroup_radio_button.setFocus()
|
||||
self.choose_group_form.existing_radio_button.setChecked(False)
|
||||
self.choose_group_form.new_radio_button.setChecked(False)
|
||||
else:
|
||||
self.choose_group_form.nogroup_radio_button.setChecked(False)
|
||||
self.choose_group_form.existing_radio_button.setChecked(True)
|
||||
self.choose_group_form.new_radio_button.setChecked(False)
|
||||
self.choose_group_form.group_combobox.setFocus()
|
||||
if self.manager.get_object_count(ImageGroups) == 0:
|
||||
self.choose_group_form.existing_radio_button.setDisabled(True)
|
||||
self.choose_group_form.group_combobox.setDisabled(True)
|
||||
|
@ -162,6 +162,7 @@ def test_check_same_instance():
|
||||
def test_get_language_from_settings():
|
||||
assert LanguageManager.get_language() == 'en'
|
||||
|
||||
|
||||
def test_get_language_from_settings_returns_unchanged_if_unknown_format():
|
||||
Settings().setValue('core/language', '(foobar)')
|
||||
assert LanguageManager.get_language() == '(foobar)'
|
||||
|
21
tests/interfaces/openlp_plugins/images/__init__.py
Normal file
21
tests/interfaces/openlp_plugins/images/__init__.py
Normal file
@ -0,0 +1,21 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||
|
||||
###############################################################################
|
||||
# OpenLP - Open Source Lyrics Projection #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# Copyright (c) 2008-2018 OpenLP Developers #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# This program is free software; you can redistribute it and/or modify it #
|
||||
# under the terms of the GNU General Public License as published by the Free #
|
||||
# Software Foundation; version 2 of the License. #
|
||||
# #
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
||||
# more details. #
|
||||
# #
|
||||
# You should have received a copy of the GNU General Public License along #
|
||||
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
@ -0,0 +1,103 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||
|
||||
###############################################################################
|
||||
# OpenLP - Open Source Lyrics Projection #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# Copyright (c) 2008-2018 OpenLP Developers #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# This program is free software; you can redistribute it and/or modify it #
|
||||
# under the terms of the GNU General Public License as published by the Free #
|
||||
# Software Foundation; version 2 of the License. #
|
||||
# #
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
||||
# more details. #
|
||||
# #
|
||||
# You should have received a copy of the GNU General Public License along #
|
||||
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
"""
|
||||
Tests for choosegroupform from the openlp.plugins.images.forms package.
|
||||
"""
|
||||
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from PyQt5 import QtWidgets
|
||||
|
||||
from openlp.core.common.registry import Registry
|
||||
from openlp.plugins.images.forms.choosegroupform import ChooseGroupForm
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
class TestImageChooseGroupForm(TestCase, TestMixin):
|
||||
"""
|
||||
Test the ChooseGroupForm class
|
||||
"""
|
||||
def setUp(self):
|
||||
"""
|
||||
Create the UI
|
||||
"""
|
||||
Registry.create()
|
||||
self.setup_application()
|
||||
self.main_window = QtWidgets.QMainWindow()
|
||||
Registry().register('main_window', self.main_window)
|
||||
self.form = ChooseGroupForm(self.main_window)
|
||||
|
||||
def tearDown(self):
|
||||
"""
|
||||
Cleanup
|
||||
"""
|
||||
del self.form
|
||||
del self.main_window
|
||||
|
||||
def test_no_group_selected_by_default(self):
|
||||
"""
|
||||
Tests that the No Group option is the default selection
|
||||
"""
|
||||
assert self.form.nogroup_radio_button.isChecked()
|
||||
|
||||
def test_provided_group_is_selected(self):
|
||||
"""
|
||||
Tests preselected group initialization
|
||||
"""
|
||||
# GIVEN: There are some existing groups
|
||||
QtWidgets.QDialog.exec = MagicMock(return_value=QtWidgets.QDialog.Accepted)
|
||||
self.form.group_combobox.addItem('Group 1', 0)
|
||||
self.form.group_combobox.addItem('Group 2', 1)
|
||||
|
||||
# WHEN: The form is displayed with preselected group index 1
|
||||
self.form.exec(1)
|
||||
|
||||
# THEN: The Existing Group should be selected along with the radio button
|
||||
assert self.form.group_combobox.currentIndex() == 1
|
||||
assert self.form.existing_radio_button.isChecked()
|
||||
|
||||
def test_auto_select_existing_group_on_combo_selection(self):
|
||||
"""
|
||||
Tests that the Existing Group option becomes selected when changing the combobox
|
||||
"""
|
||||
# GIVEN: No preselected group was provided during initialization
|
||||
assert not self.form.existing_radio_button.isChecked()
|
||||
|
||||
# WHEN: An existing group is selected from the combo box
|
||||
self.form.on_group_combobox_selected(0)
|
||||
|
||||
# THEN: The Existing Group radio button should also be selected
|
||||
assert self.form.existing_radio_button.isChecked()
|
||||
|
||||
def test_auto_select_new_group_on_edit(self):
|
||||
"""
|
||||
Tests that the New Group option becomes selected when changing the text field
|
||||
"""
|
||||
# GIVEN: The New Group option has not already been selected
|
||||
assert not self.form.new_radio_button.isChecked()
|
||||
|
||||
# WHEN: The user enters text into the new group name text field
|
||||
self.form.on_new_group_edit_changed('Test Group')
|
||||
|
||||
# THEN: The New Group radio button should also be selected
|
||||
assert self.form.new_radio_button.isChecked()
|
Loading…
Reference in New Issue
Block a user