← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~raoul-snyman/openlp/qsize-2.4 into lp:openlp/2.4

 

Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/qsize-2.4 into lp:openlp/2.4.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/qsize-2.4/+merge/313345

Fix the QSize bug.

Add this to your merge proposal:
--------------------------------
lp:~raoul-snyman/openlp/qsize-2.4 (revision 2664)
[SUCCESS] https://ci.openlp.io/job/Branch-01-Pull/1866/
[SUCCESS] https://ci.openlp.io/job/Branch-02-Functional-Tests/1777/
[SUCCESS] https://ci.openlp.io/job/Branch-03-Interface-Tests/1715/
[SUCCESS] https://ci.openlp.io/job/Branch-04a-Windows_Functional_Tests/1455/
[SUCCESS] https://ci.openlp.io/job/Branch-04b-Windows_Interface_Tests/1045/
[SUCCESS] https://ci.openlp.io/job/Branch-05a-Code_Analysis/1113/
[SUCCESS] https://ci.openlp.io/job/Branch-05b-Test_Coverage/981/
-- 
Your team OpenLP Core is requested to review the proposed merge of lp:~raoul-snyman/openlp/qsize-2.4 into lp:openlp/2.4.
=== modified file 'openlp/core/ui/projector/sourceselectform.py'
--- openlp/core/ui/projector/sourceselectform.py	2016-08-12 09:23:56 +0000
+++ openlp/core/ui/projector/sourceselectform.py	2016-12-15 11:23:06 +0000
@@ -61,9 +61,8 @@
     """
     groupdict = {}
     keydict = {}
-    checklist = inputs
-    key = checklist[0][0]
-    for item in checklist:
+    key = inputs[0][0]
+    for item in inputs:
         if item[0] == key:
             groupdict[item] = source_text[item]
             continue
@@ -75,7 +74,7 @@
     return keydict
 
 
-def Build_Tab(group, source_key, default, projector, projectordb, edit=False):
+def build_tab(group, source_key, default, projector, projectordb, edit=False):
     """
     Create the radio button page for a tab.
     Dictionary will be a 1-key entry where key=tab to setup, val=list of inputs.
@@ -174,7 +173,7 @@
         :param width: Remove default width parameter in kwargs
         :param height: Remove default height parameter in kwargs
         """
-        self.tabSize = QtWidgets.QSize(kwargs.pop('width', 100), kwargs.pop('height', 25))
+        self.tabSize = QtCore.QSize(kwargs.pop('width', 100), kwargs.pop('height', 25))
         QtWidgets.QTabBar.__init__(self, parent, *args, **kwargs)
 
     def paintEvent(self, event):
@@ -275,7 +274,7 @@
         keys.sort()
         if self.edit:
             for key in keys:
-                (tab, button_count, buttonchecked) = Build_Tab(group=self.button_group,
+                (tab, button_count, buttonchecked) = build_tab(group=self.button_group,
                                                                source_key={key: self.source_group[key]},
                                                                default=self.projector.source,
                                                                projector=self.projector,
@@ -290,7 +289,7 @@
                                                          QtWidgets.QDialogButtonBox.Cancel)
         else:
             for key in keys:
-                (tab, button_count, buttonchecked) = Build_Tab(group=self.button_group,
+                (tab, button_count, buttonchecked) = build_tab(group=self.button_group,
                                                                source_key={key: self.source_group[key]},
                                                                default=self.projector.source,
                                                                projector=self.projector,

=== added file 'tests/functional/openlp_core_ui/test_projector_sourceselectform.py'
--- tests/functional/openlp_core_ui/test_projector_sourceselectform.py	1970-01-01 00:00:00 +0000
+++ tests/functional/openlp_core_ui/test_projector_sourceselectform.py	2016-12-15 11:23:06 +0000
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection                                      #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2016 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                          #
+###############################################################################
+"""
+:mod: `tests.functional.openlp_core_ui.test_projectorsourceform` module
+
+Tests for the Projector Source Select form.
+"""
+from PyQt5 import QtCore
+
+from openlp.core.ui.projector.sourceselectform import FingerTabBarWidget, source_group
+
+
+def test_source_group():
+    """
+    Test the source_group() method
+    """
+    # GIVEN: A list of inputs and source text
+    inputs = [
+        'vga1', 'vga2',
+        'hdmi1', 'hdmi2'
+    ]
+    source_text = {
+        'vga1': 'VGA 1',
+        'vga2': 'VGA 2',
+        'hdmi1': 'HDMI 1',
+        'hdmi2': 'HDMI 2'
+    }
+
+    # WHEN: source_group() is called
+    result = source_group(inputs, source_text)
+
+    # THEN: the resultant dictionary should be correct
+    expected_dict = {
+        'v': {'vga1': 'VGA 1', 'vga2': 'VGA 2'},
+        'h': {'hdmi1': 'HDMI 1', 'hdmi2': 'HDMI 2'}
+    }
+    assert result == expected_dict, result
+
+
+def test_finger_tab_bar_widget():
+    """
+    Test that the FingerTabBarWidget is initialised correctly
+    """
+    # GIVEN: A FinderTabBarWidget class
+    # WHEN: An instance of the FingerTabBarWidget is created
+    widget = FingerTabBarWidget()
+
+    # THEN: It should havea tabSize of 100x25
+    assert widget.tabSize == QtCore.QSize(100, 25)
+
+
+def test_finger_tab_bar_widget_with_kwargs():
+    """
+    Test that the FingerTabBarWidget is initialised correctly from kwargs
+    """
+    # GIVEN: A FinderTabBarWidget class and some arguments
+    width = 300
+    height = 100
+
+    # WHEN: An instance of the FingerTabBarWidget is created
+    widget = FingerTabBarWidget(width=width, height=height)
+
+    # THEN: It should havea tabSize of 100x25
+    assert widget.tabSize == QtCore.QSize(width, height)

=== modified file 'tests/interfaces/openlp_core_ui/test_projectorsourceform.py'
--- tests/interfaces/openlp_core_ui/test_projectorsourceform.py	2016-01-15 19:41:14 +0000
+++ tests/interfaces/openlp_core_ui/test_projectorsourceform.py	2016-12-15 11:23:06 +0000
@@ -24,19 +24,17 @@
 
 Tests for the Projector Source Select form.
 """
-import logging
-log = logging.getLogger(__name__)
-log.debug('test_projectorsourceform loaded')
 import os
+import time
 from unittest import TestCase
+from unittest.mock import patch
 
 from PyQt5.QtWidgets import QDialog
 
-from tests.functional import patch
 from tests.helpers.testmixin import TestMixin
 from tests.resources.projector.data import TEST_DB, TEST1_DATA
 
-from openlp.core.common import Registry, Settings
+from openlp.core.common import Registry
 from openlp.core.lib.projector.db import ProjectorDB, Projector
 from openlp.core.lib.projector.constants import PJLINK_DEFAULT_CODES, PJLINK_DEFAULT_SOURCES
 from openlp.core.ui.projector.sourceselectform import source_group, SourceSelectSingle
@@ -49,7 +47,7 @@
     :returns: dictionary of valid PJLink source codes grouped by PJLink source group
     """
     test_group = {}
-    for group in PJLINK_DEFAULT_SOURCES.keys():
+    for group in PJLINK_DEFAULT_SOURCES:
         test_group[group] = {}
     for key in PJLINK_DEFAULT_CODES:
         test_group[key[0]][key] = PJLINK_DEFAULT_CODES[key]
@@ -86,8 +84,8 @@
         Delete all C++ objects at end so we don't segfault.
         """
         self.projectordb.session.close()
-        del(self.projectordb)
-        del(self.projector)
+        del self.projectordb
+        del self.projector
         retries = 0
         while retries < 5:
             try:

=== added file 'tests/resources/__init__.py'
=== added file 'tests/resources/projector/__init__.py'

Follow ups