PJLink2 Update V02

bzr-revno: 2860
This commit is contained in:
Ken Roberts 2019-04-28 20:53:23 +02:00 committed by Tomas Groth
commit 7af4066e17

View File

@ -22,10 +22,11 @@
""" """
Package to test the openlp.core.projectors.pjlink base package. Package to test the openlp.core.projectors.pjlink base package.
""" """
from unittest import TestCase, skip from unittest import TestCase
from unittest.mock import MagicMock, call, patch from unittest.mock import MagicMock, call, patch
import openlp.core.projectors.pjlink import openlp.core.projectors.pjlink
from openlp.core.projectors.pjlinkcommands import process_command
from openlp.core.projectors.constants import E_NOT_CONNECTED, E_PARAMETER, E_UNKNOWN_SOCKET_ERROR, QSOCKET_STATE, \ from openlp.core.projectors.constants import E_NOT_CONNECTED, E_PARAMETER, E_UNKNOWN_SOCKET_ERROR, QSOCKET_STATE, \
S_CONNECTED, S_CONNECTING, S_NOT_CONNECTED, S_OK, S_ON, STATUS_CODE, STATUS_MSG S_CONNECTED, S_CONNECTING, S_NOT_CONNECTED, S_OK, S_ON, STATUS_CODE, STATUS_MSG
from openlp.core.projectors.db import Projector from openlp.core.projectors.db import Projector
@ -37,33 +38,43 @@ class TestPJLinkBase(TestCase):
""" """
Tests for the PJLink module Tests for the PJLink module
""" """
@skip('Needs update to new setup') def setUp(self):
def test_status_change(self): """
Initialize test state(s)
"""
# Default PJLink instance for tests
self.pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
def tearDown(self):
"""
Cleanup test state(s)
"""
del(self.pjlink)
@patch.object(openlp.core.projectors.pjlink.PJLink, 'changeStatus')
def test_status_change(self, mock_changeStatus):
""" """
Test process_command call with ERR2 (Parameter) status Test process_command call with ERR2 (Parameter) status
""" """
# GIVEN: Test object # GIVEN: Test object
with patch('openlp.core.projectors.pjlink.PJLink.changeStatus') as mock_changeStatus: pjlink = self.pjlink
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
# WHEN: process_command is called with "ERR2" status from projector # WHEN: process_command is called with "ERR2" status from projector
pjlink.process_command('POWR', 'ERR2') process_command(projector=pjlink, cmd='POWR', data='ERR2')
# THEN: change_status should have called change_status with E_UNDEFINED # THEN: change_status should have called change_status with E_UNDEFINED
# as first parameter # as first parameter
mock_changeStatus.called_with(E_PARAMETER, mock_changeStatus.called_with(E_PARAMETER,
'change_status should have been called with "{}"'.format( 'change_status should have been called '
STATUS_CODE[E_PARAMETER])) 'with "{}"'.format(STATUS_CODE[E_PARAMETER]))
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'disconnect_from_host')
def test_socket_abort(self): def test_socket_abort(self, mock_disconnect):
""" """
Test PJLink.socket_abort calls disconnect_from_host Test PJLink.socket_abort calls disconnect_from_host
""" """
# GIVEN: Test object # GIVEN: Test object
with patch('openlp.core.projectors.pjlink.PJLink.disconnect_from_host') as mock_disconnect: pjlink = self.pjlink
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
# WHEN: Calling socket_abort # WHEN: Calling socket_abort
pjlink.socket_abort() pjlink.socket_abort()
@ -71,13 +82,12 @@ class TestPJLinkBase(TestCase):
# THEN: disconnect_from_host should be called # THEN: disconnect_from_host should be called
assert mock_disconnect.called is True, 'Should have called disconnect_from_host' assert mock_disconnect.called is True, 'Should have called disconnect_from_host'
@skip('Needs update to new setup')
def test_poll_loop_not_connected(self): def test_poll_loop_not_connected(self):
""" """
Test PJLink.poll_loop not connected return Test PJLink.poll_loop not connected return
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True) pjlink = self.pjlink
pjlink.state = MagicMock() pjlink.state = MagicMock()
pjlink.timer = MagicMock() pjlink.timer = MagicMock()
pjlink.state.return_value = False pjlink.state.return_value = False
@ -89,15 +99,13 @@ class TestPJLinkBase(TestCase):
# THEN: poll_loop should exit without calling any other method # THEN: poll_loop should exit without calling any other method
assert pjlink.timer.called is False, 'Should have returned without calling any other method' assert pjlink.timer.called is False, 'Should have returned without calling any other method'
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command')
def test_poll_loop_set_interval(self): def test_poll_loop_set_interval(self, mock_send_command):
""" """
Test PJLink.poll_loop makes correct calls Test PJLink.poll_loop makes correct calls
""" """
# GIVEN: Mocks and test data # GIVEN: Test object and data
with patch('openlp.core.projectors.pjlink.PJLink.send_command') as mock_send_command: pjlink = self.pjlink
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
pjlink.state = MagicMock() pjlink.state = MagicMock()
pjlink.state.return_value = QSOCKET_STATE[S_CONNECTED] pjlink.state.return_value = QSOCKET_STATE[S_CONNECTED]
pjlink.poll_timer = MagicMock() pjlink.poll_timer = MagicMock()
@ -132,17 +140,15 @@ class TestPJLinkBase(TestCase):
# Finally, should have called send_command with a list of projetctor status checks # Finally, should have called send_command with a list of projetctor status checks
mock_send_command.assert_has_calls(call_list, 'Should have queued projector queries') mock_send_command.assert_has_calls(call_list, 'Should have queued projector queries')
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'projectorUpdateIcons')
def test_projector_change_status_unknown_socket_error(self): @patch.object(openlp.core.projectors.pjlink.PJLink, 'changeStatus')
@patch.object(openlp.core.projectors.pjlink, 'log')
def test_projector_change_status_unknown_socket_error(self, mock_log, mock_changeStatus, mock_UpdateIcons):
""" """
Test change_status with connection error Test change_status with connection error
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'changeStatus') as mock_changeStatus, \
patch.object(openlp.core.projectors.pjlink.PJLink, 'projectorUpdateIcons') as mock_UpdateIcons:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
pjlink.projector_status = 0 pjlink.projector_status = 0
pjlink.status_connect = 0 pjlink.status_connect = 0
log_debug_calls = [ log_debug_calls = [
@ -170,17 +176,15 @@ class TestPJLinkBase(TestCase):
mock_changeStatus.emit.assert_called_once_with(pjlink.ip, E_UNKNOWN_SOCKET_ERROR, mock_changeStatus.emit.assert_called_once_with(pjlink.ip, E_UNKNOWN_SOCKET_ERROR,
STATUS_MSG[E_UNKNOWN_SOCKET_ERROR]) STATUS_MSG[E_UNKNOWN_SOCKET_ERROR])
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'projectorUpdateIcons')
def test_projector_change_status_connection_status_connecting(self): @patch.object(openlp.core.projectors.pjlink.PJLink, 'changeStatus')
@patch.object(openlp.core.projectors.pjlink, 'log')
def test_projector_change_status_connection_status_connecting(self, mock_log, mock_changeStatus, mock_UpdateIcons):
""" """
Test change_status with connecting status Test change_status with connecting status
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'changeStatus') as mock_changeStatus, \
patch.object(openlp.core.projectors.pjlink.PJLink, 'projectorUpdateIcons') as mock_UpdateIcons:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
pjlink.projector_status = 0 pjlink.projector_status = 0
pjlink.status_connect = 0 pjlink.status_connect = 0
log_debug_calls = [ log_debug_calls = [
@ -207,16 +211,14 @@ class TestPJLinkBase(TestCase):
assert pjlink.status_connect == S_CONNECTING, 'Status connect should be CONNECTING' assert pjlink.status_connect == S_CONNECTING, 'Status connect should be CONNECTING'
assert mock_UpdateIcons.emit.called is True, 'Should have called UpdateIcons' assert mock_UpdateIcons.emit.called is True, 'Should have called UpdateIcons'
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'changeStatus')
def test_projector_change_status_connection_status_connected(self): @patch.object(openlp.core.projectors.pjlink, 'log')
def test_projector_change_status_connection_status_connected(self, mock_log, mock_changeStatus):
""" """
Test change_status with connected status Test change_status with connected status
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'changeStatus') as mock_changeStatus:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
pjlink.projector_status = 0 pjlink.projector_status = 0
pjlink.status_connect = 0 pjlink.status_connect = 0
log_debug_calls = [ log_debug_calls = [
@ -242,16 +244,14 @@ class TestPJLinkBase(TestCase):
assert pjlink.projector_status == S_OK, 'Projector status should not have changed' assert pjlink.projector_status == S_OK, 'Projector status should not have changed'
assert pjlink.status_connect == S_CONNECTED, 'Status connect should be CONNECTED' assert pjlink.status_connect == S_CONNECTED, 'Status connect should be CONNECTED'
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'changeStatus')
def test_projector_change_status_connection_status_with_message(self): @patch.object(openlp.core.projectors.pjlink, 'log')
def test_projector_change_status_connection_status_with_message(self, mock_log, mock_changeStatus):
""" """
Test change_status with connection status Test change_status with connection status
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'changeStatus') as mock_changeStatus:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
pjlink.projector_status = 0 pjlink.projector_status = 0
pjlink.status_connect = 0 pjlink.status_connect = 0
test_message = 'Different Status Message than default' test_message = 'Different Status Message than default'
@ -278,19 +278,16 @@ class TestPJLinkBase(TestCase):
assert pjlink.projector_status == S_ON, 'Projector status should be ON' assert pjlink.projector_status == S_ON, 'Projector status should be ON'
assert pjlink.status_connect == S_OK, 'Status connect should not have changed' assert pjlink.status_connect == S_OK, 'Status connect should not have changed'
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command')
def test_projector_get_av_mute_status(self): @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 Test sending command to retrieve shutter/audio state
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command') as mock_send_command:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
test_data = 'AVMT' test_data = 'AVMT'
log_debug_calls = [call('({ip}) reset_information() connect status is ' log_debug_calls = [call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
'{state}'.format(ip=pjlink.name, state=STATUS_CODE[S_NOT_CONNECTED])),
call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
# WHEN: get_av_mute_status is called # WHEN: get_av_mute_status is called
pjlink.get_av_mute_status() pjlink.get_av_mute_status()
@ -299,19 +296,16 @@ class TestPJLinkBase(TestCase):
mock_log.debug.assert_has_calls(log_debug_calls) mock_log.debug.assert_has_calls(log_debug_calls)
mock_send_command.assert_called_once_with(cmd=test_data, priority=False) mock_send_command.assert_called_once_with(cmd=test_data, priority=False)
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command')
def test_projector_get_available_inputs(self): @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 Test sending command to retrieve avaliable inputs
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command') as mock_send_command:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
test_data = 'INST' test_data = 'INST'
log_debug_calls = [call('({ip}) reset_information() connect status is ' log_debug_calls = [call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
'{state}'.format(ip=pjlink.name, state=STATUS_CODE[S_NOT_CONNECTED])),
call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
# WHEN: get_available_inputs is called # WHEN: get_available_inputs is called
pjlink.get_available_inputs() pjlink.get_available_inputs()
@ -320,19 +314,16 @@ class TestPJLinkBase(TestCase):
mock_log.debug.assert_has_calls(log_debug_calls) mock_log.debug.assert_has_calls(log_debug_calls)
mock_send_command.assert_called_once_with(cmd=test_data) mock_send_command.assert_called_once_with(cmd=test_data)
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command')
def test_projector_get_error_status(self): @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 Test sending command to retrieve projector error status
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command') as mock_send_command:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
test_data = 'ERST' test_data = 'ERST'
log_debug_calls = [call('({ip}) reset_information() connect status is ' log_debug_calls = [call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
'{state}'.format(ip=pjlink.name, state=STATUS_CODE[S_NOT_CONNECTED])),
call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
# WHEN: get_error_status is called # WHEN: get_error_status is called
pjlink.get_error_status() pjlink.get_error_status()
@ -341,19 +332,16 @@ class TestPJLinkBase(TestCase):
mock_log.debug.assert_has_calls(log_debug_calls) mock_log.debug.assert_has_calls(log_debug_calls)
mock_send_command.assert_called_once_with(cmd=test_data) mock_send_command.assert_called_once_with(cmd=test_data)
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command')
def test_projector_get_input_source(self): @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 Test sending command to retrieve current input
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command') as mock_send_command:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
test_data = 'INPT' test_data = 'INPT'
log_debug_calls = [call('({ip}) reset_information() connect status is ' log_debug_calls = [call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
'{state}'.format(ip=pjlink.name, state=STATUS_CODE[S_NOT_CONNECTED])),
call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
# WHEN: get_input_source is called # WHEN: get_input_source is called
pjlink.get_input_source() pjlink.get_input_source()
@ -362,19 +350,16 @@ class TestPJLinkBase(TestCase):
mock_log.debug.assert_has_calls(log_debug_calls) mock_log.debug.assert_has_calls(log_debug_calls)
mock_send_command.assert_called_once_with(cmd=test_data) mock_send_command.assert_called_once_with(cmd=test_data)
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command')
def test_projector_get_lamp_status(self): @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 Test sending command to retrieve lamp(s) status
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command') as mock_send_command:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
test_data = 'LAMP' test_data = 'LAMP'
log_debug_calls = [call('({ip}) reset_information() connect status is ' log_debug_calls = [call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
'{state}'.format(ip=pjlink.name, state=STATUS_CODE[S_NOT_CONNECTED])),
call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
# WHEN: get_input_source is called # WHEN: get_input_source is called
pjlink.get_lamp_status() pjlink.get_lamp_status()
@ -383,19 +368,16 @@ class TestPJLinkBase(TestCase):
mock_log.debug.assert_has_calls(log_debug_calls) mock_log.debug.assert_has_calls(log_debug_calls)
mock_send_command.assert_called_once_with(cmd=test_data) mock_send_command.assert_called_once_with(cmd=test_data)
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command')
def test_projector_get_manufacturer(self): @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 Test sending command to retrieve manufacturer name
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command') as mock_send_command:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
test_data = 'INF1' test_data = 'INF1'
log_debug_calls = [call('({ip}) reset_information() connect status is ' log_debug_calls = [call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
'{state}'.format(ip=pjlink.name, state=STATUS_CODE[S_NOT_CONNECTED])),
call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
# WHEN: get_input_source is called # WHEN: get_input_source is called
pjlink.get_manufacturer() pjlink.get_manufacturer()
@ -404,19 +386,16 @@ class TestPJLinkBase(TestCase):
mock_log.debug.assert_has_calls(log_debug_calls) mock_log.debug.assert_has_calls(log_debug_calls)
mock_send_command.assert_called_once_with(cmd=test_data) mock_send_command.assert_called_once_with(cmd=test_data)
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command')
def test_projector_get_model(self): @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 Test sending command to get model information
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command') as mock_send_command:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
test_data = 'INF2' test_data = 'INF2'
log_debug_calls = [call('({ip}) reset_information() connect status is ' log_debug_calls = [call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
'{state}'.format(ip=pjlink.name, state=STATUS_CODE[S_NOT_CONNECTED])),
call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
# WHEN: get_input_source is called # WHEN: get_input_source is called
pjlink.get_model() pjlink.get_model()
@ -425,19 +404,16 @@ class TestPJLinkBase(TestCase):
mock_log.debug.assert_has_calls(log_debug_calls) mock_log.debug.assert_has_calls(log_debug_calls)
mock_send_command.assert_called_once_with(cmd=test_data) mock_send_command.assert_called_once_with(cmd=test_data)
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command')
def test_projector_get_name(self): @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 Test sending command to get user-assigned name
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command') as mock_send_command:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
test_data = 'NAME' test_data = 'NAME'
log_debug_calls = [call('({ip}) reset_information() connect status is ' log_debug_calls = [call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
'{state}'.format(ip=pjlink.name, state=STATUS_CODE[S_NOT_CONNECTED])),
call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
# WHEN: get_input_source is called # WHEN: get_input_source is called
pjlink.get_name() pjlink.get_name()
@ -446,19 +422,16 @@ class TestPJLinkBase(TestCase):
mock_log.debug.assert_has_calls(log_debug_calls) mock_log.debug.assert_has_calls(log_debug_calls)
mock_send_command.assert_called_once_with(cmd=test_data) mock_send_command.assert_called_once_with(cmd=test_data)
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command')
def test_projector_get_other_info(self): @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 Test sending command to retrieve other information
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command') as mock_send_command:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
test_data = 'INFO' test_data = 'INFO'
log_debug_calls = [call('({ip}) reset_information() connect status is ' log_debug_calls = [call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
'{state}'.format(ip=pjlink.name, state=STATUS_CODE[S_NOT_CONNECTED])),
call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
# WHEN: get_input_source is called # WHEN: get_input_source is called
pjlink.get_other_info() pjlink.get_other_info()
@ -467,19 +440,16 @@ class TestPJLinkBase(TestCase):
mock_log.debug.assert_has_calls(log_debug_calls) mock_log.debug.assert_has_calls(log_debug_calls)
mock_send_command.assert_called_once_with(cmd=test_data) mock_send_command.assert_called_once_with(cmd=test_data)
@skip('Needs update to new setup') @patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command')
def test_projector_get_power_status(self): @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 Test sending command to retrieve current power state
""" """
# GIVEN: Test object and mocks # GIVEN: Test object
with patch.object(openlp.core.projectors.pjlink, 'log') as mock_log, \ pjlink = self.pjlink
patch.object(openlp.core.projectors.pjlink.PJLink, 'send_command') as mock_send_command:
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True)
test_data = 'POWR' test_data = 'POWR'
log_debug_calls = [call('({ip}) reset_information() connect status is ' log_debug_calls = [call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
'{state}'.format(ip=pjlink.name, state=STATUS_CODE[S_NOT_CONNECTED])),
call('({ip}) Sending {cmd} command'.format(ip=pjlink.name, cmd=test_data))]
# WHEN: get_input_source is called # WHEN: get_input_source is called
pjlink.get_power_status() pjlink.get_power_status()
@ -488,13 +458,12 @@ class TestPJLinkBase(TestCase):
mock_log.debug.assert_has_calls(log_debug_calls) mock_log.debug.assert_has_calls(log_debug_calls)
mock_send_command.assert_called_once_with(cmd=test_data, priority=False) mock_send_command.assert_called_once_with(cmd=test_data, priority=False)
@skip('Needs update to new setup')
def test_projector_get_status_invalid(self): def test_projector_get_status_invalid(self):
""" """
Test to check returned information for error code Test to check returned information for error code
""" """
# GIVEN: Test object # GIVEN: Test object
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True) pjlink = self.pjlink
test_string = 'NaN test' test_string = 'NaN test'
# WHEN: get_status called # WHEN: get_status called
@ -504,14 +473,13 @@ class TestPJLinkBase(TestCase):
assert code == -1, 'Should have returned -1 as a bad status check' assert code == -1, 'Should have returned -1 as a bad status check'
assert message is None, 'Invalid code type should have returned None for message' assert message is None, 'Invalid code type should have returned None for message'
@skip('Needs update to new setup')
def test_projector_get_status_valid(self): def test_projector_get_status_valid(self):
""" """
Test to check returned information for status codes Test to check returned information for status codes
""" """
# GIVEN: Test object # GIVEN: Test object
test_message = 'Not Connected' test_message = 'Not Connected'
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True) pjlink = self.pjlink
# WHEN: get_status called # WHEN: get_status called
code, message = pjlink._get_status(status=S_NOT_CONNECTED) code, message = pjlink._get_status(status=S_NOT_CONNECTED)
@ -520,13 +488,12 @@ class TestPJLinkBase(TestCase):
assert code == 'S_NOT_CONNECTED', 'Code returned should have been the same code that was sent' assert code == 'S_NOT_CONNECTED', 'Code returned should have been the same code that was sent'
assert message == test_message, 'Description of code should have been returned' assert message == test_message, 'Description of code should have been returned'
@skip('Needs update to new setup')
def test_projector_get_status_unknown(self): def test_projector_get_status_unknown(self):
""" """
Test to check returned information for unknown code Test to check returned information for unknown code
""" """
# GIVEN: Test object # GIVEN: Test object
pjlink = PJLink(Projector(**TEST1_DATA), no_poll=True) pjlink = self.pjlink
# WHEN: get_status called # WHEN: get_status called
code, message = pjlink._get_status(status=9999) code, message = pjlink._get_status(status=9999)