forked from openlp/openlp
223 lines
8.7 KiB
Python
223 lines
8.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
##########################################################################
|
|
# OpenLP - Open Source Lyrics Projection #
|
|
# ---------------------------------------------------------------------- #
|
|
# Copyright (c) 2008-2022 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, either version 3 of the License, or #
|
|
# (at your option) any later version. #
|
|
# #
|
|
# 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, see <https://www.gnu.org/licenses/>. #
|
|
##########################################################################
|
|
|
|
"""
|
|
Test _process_avmt
|
|
"""
|
|
|
|
import logging
|
|
|
|
import openlp.core.projectors.pjlinkcommands
|
|
|
|
from unittest.mock import patch
|
|
|
|
test_module = openlp.core.projectors.pjlinkcommands.__name__
|
|
_process_avmt = openlp.core.projectors.pjlinkcommands._process_avmt
|
|
|
|
|
|
def test_avmt_mute(fake_pjlink):
|
|
"""
|
|
Test _proces_avmt_mute helper
|
|
"""
|
|
# GIVEN: Test setup
|
|
fake_pjlink.mute = False
|
|
|
|
# WHEN: Called
|
|
openlp.core.projectors.pjlinkcommands._process_avmt_mute(projector=fake_pjlink, data=True)
|
|
|
|
# THEN: mute should have been changed
|
|
assert fake_pjlink.mute is True, 'Mute did not change'
|
|
|
|
|
|
def test_avmt_shutter(fake_pjlink):
|
|
"""
|
|
Test _proces_avmt_shutter helper
|
|
"""
|
|
# GIVEN: Test setup
|
|
fake_pjlink.shutter = False
|
|
|
|
# WHEN: Called
|
|
openlp.core.projectors.pjlinkcommands._process_avmt_shutter(projector=fake_pjlink, data=True)
|
|
|
|
# THEN: mute should have been changed
|
|
assert fake_pjlink.shutter is True, 'Mute did not change'
|
|
|
|
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_mute')
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_shutter')
|
|
def test_avmt_bad_data(mock_shutter, mock_mute, fake_pjlink, caplog):
|
|
"""
|
|
Test avmt bad data fail
|
|
"""
|
|
# GIVEN: Test setup
|
|
t_data = '36'
|
|
caplog.set_level(logging.DEBUG)
|
|
logs = [(test_module, logging.WARNING, f'({fake_pjlink.name}) Invalid av mute response: {t_data}')]
|
|
|
|
# WHEN: Called with an invalid setting
|
|
caplog.clear()
|
|
_process_avmt(projector=fake_pjlink, data=t_data)
|
|
|
|
# THEN: No other calls made
|
|
assert caplog.record_tuples == logs, 'Invalid log entries'
|
|
mock_mute.assert_not_called()
|
|
mock_shutter.assert_not_called()
|
|
fake_pjlink.projectorUpdateIcons.assert_not_called()
|
|
fake_pjlink.status_timer_delete.assert_not_called()
|
|
|
|
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_mute')
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_shutter')
|
|
def test_avmt_10(mock_shutter, mock_mute, fake_pjlink, caplog):
|
|
"""
|
|
Test 10 = Shutter open, audio unchanged
|
|
"""
|
|
# GIVEN: Test setup
|
|
t_data = '10'
|
|
|
|
caplog.set_level(logging.DEBUG)
|
|
logs = [(test_module, logging.DEBUG, f'({fake_pjlink.name}) Setting shutter to open')]
|
|
|
|
# WHEN: Called
|
|
_process_avmt(projector=fake_pjlink, data=t_data)
|
|
|
|
# THEN: Shutter and mute should be set correctly
|
|
assert caplog.record_tuples == logs, 'Invalid log entries'
|
|
mock_mute.assert_not_called()
|
|
mock_shutter.assert_called_with(projector=fake_pjlink, data=False)
|
|
fake_pjlink.projectorUpdateIcons.emit.assert_called_once()
|
|
fake_pjlink.status_timer_delete.assert_called_once_with('AVMT')
|
|
|
|
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_mute')
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_shutter')
|
|
def test_avmt_11(mock_shutter, mock_mute, fake_pjlink, caplog):
|
|
"""
|
|
Test 11 = Shutter closed, audio unchanged
|
|
"""
|
|
# GIVEN: Test setup
|
|
t_data = '11'
|
|
caplog.set_level(logging.DEBUG)
|
|
logs = [(test_module, logging.DEBUG, f'({fake_pjlink.name}) Setting shutter to closed')]
|
|
|
|
# WHEN: Called with setting shutter closed and mute on
|
|
_process_avmt(projector=fake_pjlink, data=t_data)
|
|
|
|
# THEN: Shutter and mute should be set correctly
|
|
assert caplog.record_tuples == logs, 'Invalid log entries'
|
|
mock_mute.assert_not_called()
|
|
mock_shutter.assert_called_once_with(projector=fake_pjlink, data=True)
|
|
fake_pjlink.projectorUpdateIcons.emit.assert_called_once()
|
|
fake_pjlink.status_timer_delete.assert_called_once_with('AVMT')
|
|
|
|
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_mute')
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_shutter')
|
|
def test_avmt_20(mock_shutter, mock_mute, fake_pjlink, caplog):
|
|
"""
|
|
Test 20 = Shutter unchanged, audio normal
|
|
"""
|
|
# GIVEN: Test setup
|
|
t_data = '20'
|
|
caplog.set_level(logging.DEBUG)
|
|
logs = [(test_module, logging.DEBUG, f'({fake_pjlink.name}) Setting speaker to normal')]
|
|
|
|
# WHEN: Called with setting shutter closed and mute on
|
|
_process_avmt(projector=fake_pjlink, data=t_data)
|
|
|
|
# THEN: Shutter and mute should be set correctly
|
|
assert caplog.record_tuples == logs, 'Invalid log entries'
|
|
mock_mute.assert_called_once_with(projector=fake_pjlink, data=False)
|
|
mock_shutter.assert_not_called()
|
|
fake_pjlink.projectorUpdateIcons.emit.assert_called_once()
|
|
fake_pjlink.status_timer_delete.assert_called_once_with('AVMT')
|
|
|
|
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_mute')
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_shutter')
|
|
def test_avmt_21(mock_shutter, mock_mute, fake_pjlink, caplog):
|
|
"""
|
|
Test 21 = Shutter unchanged, audio mute
|
|
"""
|
|
# GIVEN: Test setup
|
|
t_data = '21'
|
|
caplog.set_level(logging.DEBUG)
|
|
logs = [(test_module, logging.DEBUG, f'({fake_pjlink.name}) Setting speaker to muted')]
|
|
|
|
# WHEN: Called with setting shutter closed and mute on
|
|
_process_avmt(projector=fake_pjlink, data=t_data)
|
|
|
|
# THEN: Shutter and mute should be set correctly
|
|
assert caplog.record_tuples == logs, 'Invalid log entries'
|
|
mock_mute.assert_called_once_with(projector=fake_pjlink, data=True)
|
|
mock_shutter.assert_not_called()
|
|
fake_pjlink.projectorUpdateIcons.emit.assert_called_once()
|
|
fake_pjlink.status_timer_delete.assert_called_once_with('AVMT')
|
|
|
|
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_mute')
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_shutter')
|
|
def test_avmt_30(mock_shutter, mock_mute, fake_pjlink, caplog):
|
|
"""
|
|
Test 30 = Shutter open, audio normal
|
|
"""
|
|
# GIVEN: Test setup
|
|
t_data = '30'
|
|
|
|
caplog.set_level(logging.DEBUG)
|
|
logs = [(test_module, logging.DEBUG, f'({fake_pjlink.name}) Setting shutter to open'),
|
|
(test_module, logging.DEBUG, f'({fake_pjlink.name}) Setting speaker to normal')
|
|
]
|
|
|
|
# WHEN: Called
|
|
_process_avmt(projector=fake_pjlink, data=t_data)
|
|
|
|
# THEN: Shutter and mute should be set correctly
|
|
assert caplog.record_tuples == logs, 'Invalid log entries'
|
|
mock_mute.assert_called_once_with(projector=fake_pjlink, data=False)
|
|
mock_shutter.assert_called_once_with(projector=fake_pjlink, data=False)
|
|
fake_pjlink.projectorUpdateIcons.emit.assert_called_once()
|
|
fake_pjlink.status_timer_delete.assert_called_once_with('AVMT')
|
|
|
|
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_mute')
|
|
@patch.object(openlp.core.projectors.pjlinkcommands, '_process_avmt_shutter')
|
|
def test_avmt_31(mock_shutter, mock_mute, fake_pjlink, caplog):
|
|
"""
|
|
Test 31 = Shutter closed, audio mute
|
|
"""
|
|
# GIVEN: Test object
|
|
t_data = '31'
|
|
|
|
caplog.set_level(logging.DEBUG)
|
|
logs = [(test_module, logging.DEBUG, f'({fake_pjlink.name}) Setting shutter to closed'),
|
|
(test_module, logging.DEBUG, f'({fake_pjlink.name}) Setting speaker to muted')
|
|
]
|
|
# WHEN: Called
|
|
_process_avmt(projector=fake_pjlink, data=t_data)
|
|
|
|
# THEN: Shutter and mute should be set correctly
|
|
assert caplog.record_tuples == logs, 'Invalid log entries'
|
|
mock_mute.assert_called_once_with(projector=fake_pjlink, data=True)
|
|
mock_shutter.assert_called_once_with(projector=fake_pjlink, data=True)
|
|
fake_pjlink.projectorUpdateIcons.emit.assert_called_once()
|
|
fake_pjlink.status_timer_delete.assert_called_once_with('AVMT')
|