forked from openlp/openlp
- Move openlp.core.lib.projector to openlp.core.projectors
- Move openlp.core.ui.projector to openlp.core.projectors - Move tests.functional.openlp_core/lib/test_projector* to tests.functional.openlp.core.projectors - Fix imports for new projector location - Convert projector imports to fully-qualified import - Fix delete projector item in ui.manager - Fix projector tests - Merge trunk (fix tests) - Rename "Projector" dock to "Projector Controller" --------------------------------------------... bzr-revno: 2789
This commit is contained in:
commit
ecaf678a55
@ -620,6 +620,3 @@ from .serviceitem import ServiceItem, ServiceItemType, ItemCapabilities
|
||||
from .htmlbuilder import build_html, build_lyrics_format_css, build_lyrics_outline_css, build_chords_css
|
||||
from .imagemanager import ImageManager
|
||||
from .mediamanageritem import MediaManagerItem
|
||||
from .projector.db import ProjectorDB, Projector
|
||||
from .projector.pjlink import PJLink
|
||||
from .projector.constants import PJLINK_PORT, ERROR_MSG, ERROR_STRING
|
||||
|
@ -20,11 +20,13 @@
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
"""
|
||||
:mod:`openlp.core.ui.projector`
|
||||
:mod:`openlp.core.projectors`
|
||||
|
||||
Initialization for the openlp.core.ui.projector modules.
|
||||
Initialization for the openlp.core.projectors modules.
|
||||
"""
|
||||
|
||||
from openlp.core.projectors.constants import PJLINK_PORT, ERROR_MSG, ERROR_STRING
|
||||
|
||||
|
||||
class DialogSourceStyle(object):
|
||||
"""
|
@ -43,8 +43,8 @@ from sqlalchemy.ext.declarative import declarative_base, declared_attr
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from openlp.core.lib.db import Manager, init_db, init_url
|
||||
from openlp.core.lib.projector.constants import PJLINK_DEFAULT_CODES
|
||||
from openlp.core.lib.projector import upgrade
|
||||
from openlp.core.projectors.constants import PJLINK_DEFAULT_CODES
|
||||
from openlp.core.projectors import upgrade
|
||||
|
||||
Base = declarative_base(MetaData())
|
||||
|
@ -30,8 +30,8 @@ from PyQt5 import QtCore, QtWidgets
|
||||
from openlp.core.common import verify_ip_address
|
||||
from openlp.core.common.i18n import translate
|
||||
from openlp.core.lib import build_icon
|
||||
from openlp.core.lib.projector.db import Projector
|
||||
from openlp.core.lib.projector.constants import PJLINK_PORT
|
||||
from openlp.core.projectors.db import Projector
|
||||
from openlp.core.projectors.constants import PJLINK_PORT
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.debug('editform loaded')
|
@ -34,14 +34,14 @@ from openlp.core.common.mixins import LogMixin, RegistryProperties
|
||||
from openlp.core.common.registry import RegistryBase
|
||||
from openlp.core.common.settings import Settings
|
||||
from openlp.core.lib.ui import create_widget_action
|
||||
from openlp.core.lib.projector import DialogSourceStyle
|
||||
from openlp.core.lib.projector.constants import ERROR_MSG, ERROR_STRING, E_AUTHENTICATION, E_ERROR, \
|
||||
from openlp.core.projectors import DialogSourceStyle
|
||||
from openlp.core.projectors.constants import ERROR_MSG, ERROR_STRING, E_AUTHENTICATION, E_ERROR, \
|
||||
E_NETWORK, E_NOT_CONNECTED, E_UNKNOWN_SOCKET_ERROR, STATUS_STRING, S_CONNECTED, S_CONNECTING, S_COOLDOWN, \
|
||||
S_INITIALIZE, S_NOT_CONNECTED, S_OFF, S_ON, S_STANDBY, S_WARMUP
|
||||
from openlp.core.lib.projector.db import ProjectorDB
|
||||
from openlp.core.lib.projector.pjlink import PJLink, PJLinkUDP
|
||||
from openlp.core.ui.projector.editform import ProjectorEditForm
|
||||
from openlp.core.ui.projector.sourceselectform import SourceSelectTabs, SourceSelectSingle
|
||||
from openlp.core.projectors.db import ProjectorDB
|
||||
from openlp.core.projectors.pjlink import PJLink, PJLinkUDP
|
||||
from openlp.core.projectors.editform import ProjectorEditForm
|
||||
from openlp.core.projectors.sourceselectform import SourceSelectTabs, SourceSelectSingle
|
||||
from openlp.core.widgets.toolbar import OpenLPToolbar
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
@ -518,7 +518,7 @@ class ProjectorManager(QtWidgets.QWidget, RegistryBase, UiProjectorManager, LogM
|
||||
projector.thread.quit()
|
||||
new_list = []
|
||||
for item in self.projector_list:
|
||||
if item.link.dbid == projector.link.dbid:
|
||||
if item.link.db_item.id == projector.link.db_item.id:
|
||||
continue
|
||||
new_list.append(item)
|
||||
self.projector_list = new_list
|
||||
@ -730,7 +730,6 @@ class ProjectorManager(QtWidgets.QWidget, RegistryBase, UiProjectorManager, LogM
|
||||
thread.started.connect(item.link.thread_started)
|
||||
thread.finished.connect(item.link.thread_stopped)
|
||||
thread.finished.connect(thread.deleteLater)
|
||||
item.link.projectorNetwork.connect(self.update_status)
|
||||
item.link.changeStatus.connect(self.update_status)
|
||||
item.link.projectorAuthentication.connect(self.authentication_error)
|
||||
item.link.projectorNoAuthentication.connect(self.no_authentication_error)
|
@ -54,7 +54,7 @@ from PyQt5 import QtCore, QtNetwork
|
||||
|
||||
from openlp.core.common import qmd5_hash
|
||||
from openlp.core.common.i18n import translate
|
||||
from openlp.core.lib.projector.constants import CONNECTION_ERRORS, CR, ERROR_MSG, ERROR_STRING, \
|
||||
from openlp.core.projectors.constants import CONNECTION_ERRORS, CR, ERROR_MSG, ERROR_STRING, \
|
||||
E_AUTHENTICATION, E_CONNECTION_REFUSED, E_GENERAL, E_INVALID_DATA, E_NETWORK, E_NOT_CONNECTED, E_OK, \
|
||||
E_PARAMETER, E_PROJECTOR, E_SOCKET_TIMEOUT, E_UNAVAILABLE, E_UNDEFINED, PJLINK_ERRORS, PJLINK_ERST_DATA, \
|
||||
PJLINK_ERST_STATUS, PJLINK_MAX_PACKET, PJLINK_PORT, PJLINK_POWR_STATUS, PJLINK_VALID_CMD, \
|
||||
@ -520,7 +520,6 @@ class PJLink(QtNetwork.QTcpSocket, PJLinkCommands):
|
||||
"""
|
||||
# Signals sent by this module
|
||||
changeStatus = QtCore.pyqtSignal(str, int, str)
|
||||
projectorNetwork = QtCore.pyqtSignal(int) # Projector network activity
|
||||
projectorStatus = QtCore.pyqtSignal(int) # Status update
|
||||
projectorAuthentication = QtCore.pyqtSignal(str) # Authentication error
|
||||
projectorNoAuthentication = QtCore.pyqtSignal(str) # PIN set and no authentication needed
|
||||
@ -846,7 +845,6 @@ class PJLink(QtNetwork.QTcpSocket, PJLinkCommands):
|
||||
log.debug('({ip}) get_socket(): No data available (-1)'.format(ip=self.ip))
|
||||
return self.receive_data_signal()
|
||||
self.socket_timer.stop()
|
||||
self.projectorNetwork.emit(S_NETWORK_RECEIVED)
|
||||
return self.get_data(buff=read, ip=self.ip)
|
||||
|
||||
def get_data(self, buff, ip):
|
||||
@ -925,7 +923,6 @@ class PJLink(QtNetwork.QTcpSocket, PJLinkCommands):
|
||||
if cmd not in PJLINK_VALID_CMD:
|
||||
log.error('({ip}) send_command(): Invalid command requested - ignoring.'.format(ip=self.ip))
|
||||
return
|
||||
self.projectorNetwork.emit(S_NETWORK_SENDING)
|
||||
log.debug('({ip}) send_command(): Building cmd="{command}" opts="{data}"{salt}'.format(ip=self.ip,
|
||||
command=cmd,
|
||||
data=opts,
|
||||
@ -996,7 +993,6 @@ class PJLink(QtNetwork.QTcpSocket, PJLinkCommands):
|
||||
log.debug('({ip}) _send_string(): Sending "{data}"'.format(ip=self.ip, data=out.strip()))
|
||||
log.debug('({ip}) _send_string(): Queue = {data}'.format(ip=self.ip, data=self.send_queue))
|
||||
self.socket_timer.start()
|
||||
self.projectorNetwork.emit(S_NETWORK_SENDING)
|
||||
sent = self.write(out.encode('{string_encoding}'.format(string_encoding='utf-8' if utf8 else 'ascii')))
|
||||
self.waitForBytesWritten(2000) # 2 seconds should be enough
|
||||
if sent == -1:
|
@ -31,8 +31,8 @@ from PyQt5 import QtCore, QtWidgets
|
||||
from openlp.core.common import is_macosx
|
||||
from openlp.core.common.i18n import translate
|
||||
from openlp.core.lib import build_icon
|
||||
from openlp.core.lib.projector.db import ProjectorSource
|
||||
from openlp.core.lib.projector.constants import PJLINK_DEFAULT_SOURCES, PJLINK_DEFAULT_CODES
|
||||
from openlp.core.projectors.db import ProjectorSource
|
||||
from openlp.core.projectors.constants import PJLINK_DEFAULT_SOURCES, PJLINK_DEFAULT_CODES
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
@ -29,7 +29,7 @@ from PyQt5 import QtWidgets
|
||||
from openlp.core.common.i18n import UiStrings, translate
|
||||
from openlp.core.common.settings import Settings
|
||||
from openlp.core.lib import SettingsTab
|
||||
from openlp.core.lib.projector import DialogSourceStyle
|
||||
from openlp.core.projectors import DialogSourceStyle
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.debug('projectortab module loaded')
|
@ -115,9 +115,10 @@ from .formattingtagcontroller import FormattingTagController
|
||||
from .shortcutlistform import ShortcutListForm
|
||||
from .servicemanager import ServiceManager
|
||||
from .thememanager import ThemeManager
|
||||
from .projector.manager import ProjectorManager
|
||||
from .projector.tab import ProjectorTab
|
||||
from .projector.editform import ProjectorEditForm
|
||||
|
||||
from openlp.core.projectors.editform import ProjectorEditForm
|
||||
from openlp.core.projectors.manager import ProjectorManager
|
||||
from openlp.core.projectors.tab import ProjectorTab
|
||||
|
||||
__all__ = ['SplashScreen', 'AboutForm', 'SettingsForm', 'MainDisplay', 'SlideController', 'ServiceManager', 'ThemeForm',
|
||||
'ThemeManager', 'ServiceItemEditForm', 'FirstTimeForm', 'FirstTimeLanguageForm', 'Display', 'AudioPlayer',
|
||||
|
@ -261,8 +261,8 @@ class UiFirstTimeWizard(object):
|
||||
self.alert_check_box.setText(translate('OpenLP.FirstTimeWizard',
|
||||
'Alerts – Display informative messages while showing other slides'))
|
||||
self.projectors_check_box.setText(translate('OpenLP.FirstTimeWizard',
|
||||
'Projectors – Control PJLink compatible projects on your network'
|
||||
' from OpenLP'))
|
||||
'Projector Controller – Control PJLink compatible projects on your'
|
||||
' network from OpenLP'))
|
||||
self.no_internet_page.setTitle(translate('OpenLP.FirstTimeWizard', 'No Internet Connection'))
|
||||
self.no_internet_page.setSubTitle(
|
||||
translate('OpenLP.FirstTimeWizard', 'Unable to detect an Internet connection.'))
|
||||
|
@ -48,6 +48,7 @@ from openlp.core.display.screens import ScreenList
|
||||
from openlp.core.display.renderer import Renderer
|
||||
from openlp.core.lib import PluginManager, ImageManager, PluginStatus, build_icon
|
||||
from openlp.core.lib.ui import create_action
|
||||
from openlp.core.projectors.manager import ProjectorManager
|
||||
from openlp.core.ui import AboutForm, SettingsForm, ServiceManager, ThemeManager, LiveController, PluginForm, \
|
||||
ShortcutListForm, FormattingTagForm, PreviewController
|
||||
from openlp.core.ui.firsttimeform import FirstTimeForm
|
||||
@ -55,7 +56,6 @@ from openlp.core.widgets.dialogs import FileDialog
|
||||
from openlp.core.widgets.docks import OpenLPDockWidget, MediaDockManager
|
||||
from openlp.core.ui.media import MediaController
|
||||
from openlp.core.ui.printserviceform import PrintServiceForm
|
||||
from openlp.core.ui.projector.manager import ProjectorManager
|
||||
from openlp.core.ui.style import PROGRESSBAR_STYLE, get_library_stylesheet
|
||||
from openlp.core.version import get_version
|
||||
|
||||
@ -375,7 +375,7 @@ class Ui_MainWindow(object):
|
||||
self.media_manager_dock.setWindowTitle(translate('OpenLP.MainWindow', 'Library'))
|
||||
self.service_manager_dock.setWindowTitle(translate('OpenLP.MainWindow', 'Service'))
|
||||
self.theme_manager_dock.setWindowTitle(translate('OpenLP.MainWindow', 'Themes'))
|
||||
self.projector_manager_dock.setWindowTitle(translate('OpenLP.MainWindow', 'Projectors'))
|
||||
self.projector_manager_dock.setWindowTitle(translate('OpenLP.MainWindow', 'Projector Controller'))
|
||||
self.file_new_item.setText(translate('OpenLP.MainWindow', '&New Service'))
|
||||
self.file_new_item.setToolTip(UiStrings().NewService)
|
||||
self.file_new_item.setStatusTip(UiStrings().CreateService)
|
||||
@ -407,7 +407,7 @@ class Ui_MainWindow(object):
|
||||
translate('OpenLP.MainWindow', 'Import settings from a *.config file previously exported from '
|
||||
'this or another machine.'))
|
||||
self.settings_import_item.setText(translate('OpenLP.MainWindow', 'Settings'))
|
||||
self.view_projector_manager_item.setText(translate('OpenLP.MainWindow', '&Projectors'))
|
||||
self.view_projector_manager_item.setText(translate('OpenLP.MainWindow', '&Projector Controller'))
|
||||
self.view_projector_manager_item.setToolTip(translate('OpenLP.MainWindow', 'Hide or show Projectors.'))
|
||||
self.view_projector_manager_item.setStatusTip(translate('OpenLP.MainWindow',
|
||||
'Toggle visibility of the Projectors.'))
|
||||
|
@ -30,9 +30,9 @@ from openlp.core.api import ApiTab
|
||||
from openlp.core.common.mixins import RegistryProperties
|
||||
from openlp.core.common.registry import Registry
|
||||
from openlp.core.lib import build_icon
|
||||
from openlp.core.projectors.tab import ProjectorTab
|
||||
from openlp.core.ui import AdvancedTab, GeneralTab, ThemesTab
|
||||
from openlp.core.ui.media import PlayerTab
|
||||
from openlp.core.ui.projector.tab import ProjectorTab
|
||||
from openlp.core.ui.settingsdialog import Ui_SettingsDialog
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
@ -20,5 +20,5 @@
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
"""
|
||||
The Projector driver module.
|
||||
Module-level functions for the functional test suite
|
||||
"""
|
@ -20,7 +20,7 @@
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
"""
|
||||
Package to test the openlp.core.lib.projector.constants package.
|
||||
Package to test the openlp.core.projectors.constants module.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
|
||||
@ -37,7 +37,7 @@ class TestProjectorConstants(TestCase):
|
||||
from tests.resources.projector.data import TEST_VIDEO_CODES
|
||||
|
||||
# WHEN: Import projector PJLINK_DEFAULT_CODES
|
||||
from openlp.core.lib.projector.constants import PJLINK_DEFAULT_CODES
|
||||
from openlp.core.projectors.constants import PJLINK_DEFAULT_CODES
|
||||
|
||||
# THEN: Verify dictionary was build correctly
|
||||
self.assertEqual(PJLINK_DEFAULT_CODES, TEST_VIDEO_CODES, 'PJLink video strings should match')
|
@ -20,7 +20,7 @@
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
"""
|
||||
Package to test the openlp.core.ui.projectordb find, edit, delete
|
||||
Package to test the openlp.core.projectors.db module.
|
||||
record functions.
|
||||
|
||||
PREREQUISITE: add_record() and get_all() functions validated.
|
||||
@ -32,10 +32,10 @@ from tempfile import mkdtemp
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from openlp.core.lib.projector import upgrade
|
||||
from openlp.core.lib.db import upgrade_db
|
||||
from openlp.core.lib.projector.constants import PJLINK_PORT
|
||||
from openlp.core.lib.projector.db import Manufacturer, Model, Projector, ProjectorDB, ProjectorSource, Source
|
||||
from openlp.core.projectors import upgrade
|
||||
from openlp.core.projectors.constants import PJLINK_PORT
|
||||
from openlp.core.projectors.db import Manufacturer, Model, Projector, ProjectorDB, ProjectorSource, Source
|
||||
|
||||
from tests.resources.projector.data import TEST_DB_PJLINK1, TEST_DB, TEST1_DATA, TEST2_DATA, TEST3_DATA
|
||||
from tests.utils.constants import TEST_RESOURCES_PATH
|
||||
@ -129,7 +129,7 @@ class TestProjectorDB(TestCase):
|
||||
"""
|
||||
Test case for ProjectorDB
|
||||
"""
|
||||
@patch('openlp.core.lib.projector.db.init_url')
|
||||
@patch('openlp.core.projectors.db.init_url')
|
||||
def setUp(self, mocked_init_url):
|
||||
"""
|
||||
Set up anything necessary for all tests
|
@ -20,14 +20,14 @@
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
"""
|
||||
Package to test the openlp.core.lib.projector.pjlink base package.
|
||||
Package to test the openlp.core.projectors.pjlink base package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import call, patch, MagicMock
|
||||
|
||||
from openlp.core.lib.projector.db import Projector
|
||||
from openlp.core.lib.projector.pjlink import PJLink
|
||||
from openlp.core.lib.projector.constants import E_PARAMETER, ERROR_STRING, S_ON, S_CONNECTED
|
||||
from openlp.core.projectors.constants import E_PARAMETER, ERROR_STRING, S_ON, S_CONNECTED
|
||||
from openlp.core.projectors.db import Projector
|
||||
from openlp.core.projectors.pjlink import PJLink
|
||||
|
||||
from tests.resources.projector.data import TEST_PIN, TEST_SALT, TEST_CONNECT_AUTHENTICATE, TEST_HASH, TEST1_DATA
|
||||
|
@ -20,20 +20,20 @@
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
"""
|
||||
Package to test the openlp.core.lib.projector.pjlink class command routing.
|
||||
Package to test the openlp.core.projectors.pjlink command routing.
|
||||
"""
|
||||
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
import openlp.core.lib.projector.pjlink
|
||||
from openlp.core.lib.projector.db import Projector
|
||||
from openlp.core.lib.projector.pjlink import PJLink
|
||||
from openlp.core.lib.projector.constants import PJLINK_ERRORS, \
|
||||
import openlp.core.projectors.pjlink
|
||||
from openlp.core.projectors.constants import PJLINK_ERRORS, \
|
||||
E_AUTHENTICATION, E_PARAMETER, E_PROJECTOR, E_UNAVAILABLE, E_UNDEFINED
|
||||
from openlp.core.projectors.db import Projector
|
||||
from openlp.core.projectors.pjlink import PJLink
|
||||
|
||||
'''
|
||||
from openlp.core.lib.projector.constants import ERROR_STRING, PJLINK_ERST_DATA, PJLINK_ERST_STATUS, \
|
||||
from openlp.core.projectors.constants import ERROR_STRING, PJLINK_ERST_DATA, PJLINK_ERST_STATUS, \
|
||||
PJLINK_POWR_STATUS, PJLINK_VALID_CMD, E_WARN, E_ERROR, S_OFF, S_STANDBY, S_ON
|
||||
'''
|
||||
from tests.resources.projector.data import TEST_PIN, TEST1_DATA
|
||||
@ -46,7 +46,7 @@ class TestPJLinkRouting(TestCase):
|
||||
"""
|
||||
Tests for the PJLink module command routing
|
||||
"""
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_process_command_call_clss(self, mock_log):
|
||||
"""
|
||||
Test process_command calls proper function
|
||||
@ -66,7 +66,7 @@ class TestPJLinkRouting(TestCase):
|
||||
mock_process_clss.assert_called_with('1')
|
||||
|
||||
@patch.object(pjlink_test, 'change_status')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_process_command_err1(self, mock_log, mock_change_status):
|
||||
"""
|
||||
Test ERR1 - Undefined projector function
|
||||
@ -85,7 +85,7 @@ class TestPJLinkRouting(TestCase):
|
||||
mock_log.error.assert_called_with(log_text)
|
||||
|
||||
@patch.object(pjlink_test, 'change_status')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_process_command_err2(self, mock_log, mock_change_status):
|
||||
"""
|
||||
Test ERR2 - Parameter Error
|
||||
@ -104,7 +104,7 @@ class TestPJLinkRouting(TestCase):
|
||||
mock_log.error.assert_called_with(log_text)
|
||||
|
||||
@patch.object(pjlink_test, 'change_status')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_process_command_err3(self, mock_log, mock_change_status):
|
||||
"""
|
||||
Test ERR3 - Unavailable error
|
||||
@ -123,7 +123,7 @@ class TestPJLinkRouting(TestCase):
|
||||
mock_log.error.assert_called_with(log_text)
|
||||
|
||||
@patch.object(pjlink_test, 'change_status')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_process_command_err4(self, mock_log, mock_change_status):
|
||||
"""
|
||||
Test ERR3 - Unavailable error
|
||||
@ -144,7 +144,7 @@ class TestPJLinkRouting(TestCase):
|
||||
@patch.object(pjlink_test, 'projectorAuthentication')
|
||||
@patch.object(pjlink_test, 'change_status')
|
||||
@patch.object(pjlink_test, 'disconnect_from_host')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_process_command_erra(self, mock_log, mock_disconnect, mock_change_status, mock_err_authenticate):
|
||||
"""
|
||||
Test ERRA - Authentication Error
|
||||
@ -163,7 +163,7 @@ class TestPJLinkRouting(TestCase):
|
||||
mock_change_status.assert_called_once_with(E_AUTHENTICATION)
|
||||
mock_log.error.assert_called_with(log_text)
|
||||
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_process_command_future(self, mock_log):
|
||||
"""
|
||||
Test command valid but no method to process yet
|
||||
@ -184,7 +184,7 @@ class TestPJLinkRouting(TestCase):
|
||||
mock_log.warning.assert_called_once_with(log_text)
|
||||
|
||||
@patch.object(pjlink_test, 'pjlink_functions')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_process_command_invalid(self, mock_log, mock_functions):
|
||||
"""
|
||||
Test not a valid command
|
||||
@ -203,7 +203,7 @@ class TestPJLinkRouting(TestCase):
|
||||
mock_log.error.assert_called_once_with(log_text)
|
||||
|
||||
@patch.object(pjlink_test, 'pjlink_functions')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_process_command_ok(self, mock_log, mock_functions):
|
||||
"""
|
||||
Test command returned success
|
@ -20,18 +20,18 @@
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
"""
|
||||
Package to test the openlp.core.lib.projector.pjlink commands package.
|
||||
Package to test the openlp.core.projectors.pjlink commands package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
import openlp.core.lib.projector.pjlink
|
||||
from openlp.core.lib.projector.db import Projector
|
||||
from openlp.core.lib.projector.pjlink import PJLink
|
||||
from openlp.core.lib.projector.constants import ERROR_STRING, PJLINK_ERST_DATA, PJLINK_ERST_STATUS, \
|
||||
import openlp.core.projectors.pjlink
|
||||
from openlp.core.projectors.constants import ERROR_STRING, PJLINK_ERST_DATA, PJLINK_ERST_STATUS, \
|
||||
PJLINK_POWR_STATUS, \
|
||||
E_ERROR, E_NOT_CONNECTED, E_SOCKET_ADDRESS_NOT_AVAILABLE, E_UNKNOWN_SOCKET_ERROR, E_WARN, \
|
||||
S_CONNECTED, S_OFF, S_ON, S_NOT_CONNECTED, S_CONNECTING, S_STANDBY
|
||||
from openlp.core.projectors.db import Projector
|
||||
from openlp.core.projectors.pjlink import PJLink
|
||||
|
||||
from tests.resources.projector.data import TEST_PIN, TEST1_DATA
|
||||
|
||||
@ -50,7 +50,7 @@ class TestPJLinkCommands(TestCase):
|
||||
Tests for the PJLink module
|
||||
"""
|
||||
@patch.object(pjlink_test, 'changeStatus')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_change_status_connection_error(self, mock_log, mock_change_status):
|
||||
"""
|
||||
Test change_status with connection error
|
||||
@ -74,7 +74,7 @@ class TestPJLinkCommands(TestCase):
|
||||
self.assertEqual(mock_log.debug.call_count, 3, 'Debug log should have been called 3 times')
|
||||
|
||||
@patch.object(pjlink_test, 'changeStatus')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_change_status_connection_status_connecting(self, mock_log, mock_change_status):
|
||||
"""
|
||||
Test change_status with connection status
|
||||
@ -97,7 +97,7 @@ class TestPJLinkCommands(TestCase):
|
||||
self.assertEqual(mock_log.debug.call_count, 3, 'Debug log should have been called 3 times')
|
||||
|
||||
@patch.object(pjlink_test, 'changeStatus')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_change_status_connection_status_connected(self, mock_log, mock_change_status):
|
||||
"""
|
||||
Test change_status with connection status
|
||||
@ -120,7 +120,7 @@ class TestPJLinkCommands(TestCase):
|
||||
self.assertEqual(mock_log.debug.call_count, 3, 'Debug log should have been called 3 times')
|
||||
|
||||
@patch.object(pjlink_test, 'changeStatus')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_change_status_connection_status_with_message(self, mock_log, mock_change_status):
|
||||
"""
|
||||
Test change_status with connection status
|
||||
@ -144,7 +144,7 @@ class TestPJLinkCommands(TestCase):
|
||||
self.assertEqual(mock_log.debug.call_count, 3, 'Debug log should have been called 3 times')
|
||||
|
||||
@patch.object(pjlink_test, 'send_command')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_get_av_mute_status(self, mock_log, mock_send_command):
|
||||
"""
|
||||
Test sending command to retrieve shutter/audio state
|
||||
@ -164,7 +164,7 @@ class TestPJLinkCommands(TestCase):
|
||||
mock_send_command.assert_called_once_with(cmd=test_data)
|
||||
|
||||
@patch.object(pjlink_test, 'send_command')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_get_available_inputs(self, mock_log, mock_send_command):
|
||||
"""
|
||||
Test sending command to retrieve avaliable inputs
|
||||
@ -184,7 +184,7 @@ class TestPJLinkCommands(TestCase):
|
||||
mock_send_command.assert_called_once_with(cmd=test_data)
|
||||
|
||||
@patch.object(pjlink_test, 'send_command')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_get_error_status(self, mock_log, mock_send_command):
|
||||
"""
|
||||
Test sending command to retrieve projector error status
|
||||
@ -204,7 +204,7 @@ class TestPJLinkCommands(TestCase):
|
||||
mock_send_command.assert_called_once_with(cmd=test_data)
|
||||
|
||||
@patch.object(pjlink_test, 'send_command')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_get_input_source(self, mock_log, mock_send_command):
|
||||
"""
|
||||
Test sending command to retrieve current input
|
||||
@ -224,7 +224,7 @@ class TestPJLinkCommands(TestCase):
|
||||
mock_send_command.assert_called_once_with(cmd=test_data)
|
||||
|
||||
@patch.object(pjlink_test, 'send_command')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_get_lamp_status(self, mock_log, mock_send_command):
|
||||
"""
|
||||
Test sending command to retrieve lamp(s) status
|
||||
@ -244,7 +244,7 @@ class TestPJLinkCommands(TestCase):
|
||||
mock_send_command.assert_called_once_with(cmd=test_data)
|
||||
|
||||
@patch.object(pjlink_test, 'send_command')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_get_manufacturer(self, mock_log, mock_send_command):
|
||||
"""
|
||||
Test sending command to retrieve manufacturer name
|
||||
@ -264,7 +264,7 @@ class TestPJLinkCommands(TestCase):
|
||||
mock_send_command.assert_called_once_with(cmd=test_data)
|
||||
|
||||
@patch.object(pjlink_test, 'send_command')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_get_model(self, mock_log, mock_send_command):
|
||||
"""
|
||||
Test sending command to get model information
|
||||
@ -284,7 +284,7 @@ class TestPJLinkCommands(TestCase):
|
||||
mock_send_command.assert_called_once_with(cmd=test_data)
|
||||
|
||||
@patch.object(pjlink_test, 'send_command')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_get_name(self, mock_log, mock_send_command):
|
||||
"""
|
||||
Test sending command to get user-assigned name
|
||||
@ -304,7 +304,7 @@ class TestPJLinkCommands(TestCase):
|
||||
mock_send_command.assert_called_once_with(cmd=test_data)
|
||||
|
||||
@patch.object(pjlink_test, 'send_command')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_get_other_info(self, mock_log, mock_send_command):
|
||||
"""
|
||||
Test sending command to retrieve other information
|
||||
@ -324,7 +324,7 @@ class TestPJLinkCommands(TestCase):
|
||||
mock_send_command.assert_called_once_with(cmd=test_data)
|
||||
|
||||
@patch.object(pjlink_test, 'send_command')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_get_power_status(self, mock_log, mock_send_command):
|
||||
"""
|
||||
Test sending command to retrieve current power state
|
||||
@ -599,7 +599,7 @@ class TestPJLinkCommands(TestCase):
|
||||
self.assertEqual(pjlink.pjlink_class, '2',
|
||||
'Non-standard class reply should have set class=2')
|
||||
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_process_clss_invalid_nan(self, mock_log):
|
||||
"""
|
||||
Test CLSS reply has no class number
|
||||
@ -616,7 +616,7 @@ class TestPJLinkCommands(TestCase):
|
||||
'Non-standard class reply should have set class=1')
|
||||
mock_log.error.assert_called_once_with(log_text)
|
||||
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_process_clss_invalid_no_version(self, mock_log):
|
||||
"""
|
||||
Test CLSS reply has no class number
|
||||
@ -648,7 +648,7 @@ class TestPJLinkCommands(TestCase):
|
||||
# THEN: PJLink instance errors should be None
|
||||
self.assertIsNone(pjlink.projector_errors, 'projector_errors should have been set to None')
|
||||
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_process_erst_data_invalid_length(self, mock_log):
|
||||
"""
|
||||
Test test_projector_process_erst_data_invalid_length
|
||||
@ -666,7 +666,7 @@ class TestPJLinkCommands(TestCase):
|
||||
self.assertTrue(mock_log.warning.called, 'Warning should have been logged')
|
||||
mock_log.warning.assert_called_once_with(log_text)
|
||||
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_process_erst_data_invalid_nan(self, mock_log):
|
||||
"""
|
||||
Test test_projector_process_erst_data_invalid_nan
|
||||
@ -764,7 +764,7 @@ class TestPJLinkCommands(TestCase):
|
||||
self.assertEqual(pjlink.source, '1', 'Input source should be set to "1"')
|
||||
|
||||
@patch.object(pjlink_test, 'projectorUpdateIcons')
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_process_inst(self, mock_log, mock_UpdateIcons):
|
||||
"""
|
||||
Test saving video source available information
|
||||
@ -787,7 +787,7 @@ class TestPJLinkCommands(TestCase):
|
||||
mock_log.debug.assert_called_once_with(log_data)
|
||||
self.assertTrue(mock_UpdateIcons.emit.called, 'Update Icons should have been called')
|
||||
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_process_lamp_invalid(self, mock_log):
|
||||
"""
|
||||
Test status multiple lamp on/off and hours
|
||||
@ -858,7 +858,7 @@ class TestPJLinkCommands(TestCase):
|
||||
self.assertEqual(pjlink.lamp[0]['Hours'], 22222,
|
||||
'Lamp hours should have been set to 22222')
|
||||
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_process_name(self, mock_log):
|
||||
"""
|
||||
Test saving NAME data from projector
|
||||
@ -1040,7 +1040,7 @@ class TestPJLinkCommands(TestCase):
|
||||
self.assertNotEquals(pjlink.serial_no, test_number,
|
||||
'Projector serial number should NOT have been set')
|
||||
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_process_sver(self, mock_log):
|
||||
"""
|
||||
Test invalid software version information - too long
|
||||
@ -1061,7 +1061,7 @@ class TestPJLinkCommands(TestCase):
|
||||
self.assertIsNone(pjlink.sw_version_received, 'Received software version should not have changed')
|
||||
mock_log.debug.assert_called_once_with(test_log)
|
||||
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_process_sver_changed(self, mock_log):
|
||||
"""
|
||||
Test invalid software version information - Received different than saved
|
||||
@ -1086,7 +1086,7 @@ class TestPJLinkCommands(TestCase):
|
||||
# There was 4 calls, but only the last one is checked with this method
|
||||
mock_log.warning.assert_called_with(test_log)
|
||||
|
||||
@patch.object(openlp.core.lib.projector.pjlink, 'log')
|
||||
@patch.object(openlp.core.projectors.pjlink, 'log')
|
||||
def test_projector_process_sver_invalid(self, mock_log):
|
||||
"""
|
||||
Test invalid software version information - too long
|
@ -20,7 +20,7 @@
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
"""
|
||||
Interface tests to test the openlp.core.ui.projector.editform.ProjectorEditForm()
|
||||
Interface tests to test the openlp.core.projectors.editform.ProjectorEditForm()
|
||||
class and methods.
|
||||
"""
|
||||
import os
|
||||
@ -28,8 +28,9 @@ from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from openlp.core.common.registry import Registry
|
||||
from openlp.core.lib.projector.db import Projector, ProjectorDB
|
||||
from openlp.core.ui import ProjectorEditForm
|
||||
from openlp.core.projectors.db import Projector, ProjectorDB
|
||||
from openlp.core.projectors.editform import ProjectorEditForm
|
||||
from openlp.core.projectors.manager import ProjectorManager
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.resources.projector.data import TEST_DB, TEST1_DATA, TEST2_DATA
|
||||
@ -48,7 +49,7 @@ class TestProjectorEditForm(TestCase, TestMixin):
|
||||
self.setup_application()
|
||||
self.build_settings()
|
||||
Registry.create()
|
||||
with patch('openlp.core.lib.projector.db.init_url') as mocked_init_url:
|
||||
with patch('openlp.core.projectors.db.init_url') as mocked_init_url:
|
||||
if os.path.exists(TEST_DB):
|
||||
os.unlink(TEST_DB)
|
||||
mocked_init_url.return_value = 'sqlite:///' + TEST_DB
|
||||
@ -66,7 +67,7 @@ class TestProjectorEditForm(TestCase, TestMixin):
|
||||
del self.projector_form
|
||||
self.destroy_settings()
|
||||
|
||||
@patch('openlp.core.ui.projector.editform.QtWidgets.QDialog.exec')
|
||||
@patch('openlp.core.projectors.editform.QtWidgets.QDialog.exec')
|
||||
def test_edit_form_add_projector(self, mocked_exec):
|
||||
"""
|
||||
Test projector edit form with no parameters creates a new entry.
|
||||
@ -84,7 +85,7 @@ class TestProjectorEditForm(TestCase, TestMixin):
|
||||
self.assertTrue((item.ip is None and item.name is None),
|
||||
'Projector edit form should have a new Projector() instance to edit')
|
||||
|
||||
@patch('openlp.core.ui.projector.editform.QtWidgets.QDialog.exec')
|
||||
@patch('openlp.core.projectors.editform.QtWidgets.QDialog.exec')
|
||||
def test_edit_form_edit_projector(self, mocked_exec):
|
||||
"""
|
||||
Test projector edit form with existing projector entry
|
||||
|
@ -27,8 +27,9 @@ from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from openlp.core.common.registry import Registry
|
||||
from openlp.core.ui import ProjectorManager, ProjectorEditForm
|
||||
from openlp.core.lib.projector.db import ProjectorDB
|
||||
from openlp.core.projectors.db import ProjectorDB
|
||||
from openlp.core.projectors.editform import ProjectorEditForm
|
||||
from openlp.core.projectors.manager import ProjectorManager
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.resources.projector.data import TEST_DB
|
||||
@ -45,7 +46,7 @@ class TestProjectorManager(TestCase, TestMixin):
|
||||
self.setup_application()
|
||||
self.build_settings()
|
||||
Registry.create()
|
||||
with patch('openlp.core.lib.projector.db.init_url') as mocked_init_url:
|
||||
with patch('openlp.core.projectors.db.init_url') as mocked_init_url:
|
||||
if os.path.exists(TEST_DB):
|
||||
os.unlink(TEST_DB)
|
||||
mocked_init_url.return_value = 'sqlite:///%s' % TEST_DB
|
||||
|
@ -32,9 +32,9 @@ from unittest.mock import patch
|
||||
from PyQt5.QtWidgets import QDialog
|
||||
|
||||
from openlp.core.common.registry 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
|
||||
from openlp.core.projectors.db import ProjectorDB, Projector
|
||||
from openlp.core.projectors.constants import PJLINK_DEFAULT_CODES, PJLINK_DEFAULT_SOURCES
|
||||
from openlp.core.projectors.sourceselectform import source_group, SourceSelectSingle
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.resources.projector.data import TEST_DB, TEST1_DATA
|
||||
@ -58,7 +58,7 @@ class ProjectorSourceFormTest(TestCase, TestMixin):
|
||||
"""
|
||||
Test class for the Projector Source Select form module
|
||||
"""
|
||||
@patch('openlp.core.lib.projector.db.init_url')
|
||||
@patch('openlp.core.projectors.db.init_url')
|
||||
def setUp(self, mocked_init_url):
|
||||
"""
|
||||
Set up anything necessary for all tests
|
||||
|
Loading…
Reference in New Issue
Block a user