forked from openlp/openlp
Fix Windows tests when running on WINE
bzr-revno: 2477
This commit is contained in:
commit
cf30667fb5
@ -156,7 +156,10 @@ def upgrade_db(url, upgrade):
|
|||||||
except (SQLAlchemyError, DBAPIError):
|
except (SQLAlchemyError, DBAPIError):
|
||||||
version_meta = Metadata.populate(key='version', value=int(upgrade.__version__))
|
version_meta = Metadata.populate(key='version', value=int(upgrade.__version__))
|
||||||
session.commit()
|
session.commit()
|
||||||
return int(version_meta.value), upgrade.__version__
|
upgrade_version = upgrade.__version__
|
||||||
|
version_meta = int(version_meta.value)
|
||||||
|
session.close()
|
||||||
|
return version_meta, upgrade_version
|
||||||
|
|
||||||
|
|
||||||
def delete_database(plugin_name, db_file_name=None):
|
def delete_database(plugin_name, db_file_name=None):
|
||||||
|
@ -125,7 +125,6 @@ class InfoLabel(QtGui.QLabel):
|
|||||||
alignment = QtCore.Qt.AlignLeft
|
alignment = QtCore.Qt.AlignLeft
|
||||||
painter.drawText(self.rect(), alignment, elided)
|
painter.drawText(self.rect(), alignment, elided)
|
||||||
|
|
||||||
|
|
||||||
def setText(self, text):
|
def setText(self, text):
|
||||||
"""
|
"""
|
||||||
Reimplemented to set the tool tip text.
|
Reimplemented to set the tool tip text.
|
||||||
|
@ -431,7 +431,7 @@ def get_uno_command(connection_type='pipe'):
|
|||||||
"""
|
"""
|
||||||
for command in ['libreoffice', 'soffice']:
|
for command in ['libreoffice', 'soffice']:
|
||||||
if which(command):
|
if which(command):
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
raise FileNotFoundError('Command not found')
|
raise FileNotFoundError('Command not found')
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ class WorshipCenterProImport(SongImport):
|
|||||||
"""
|
"""
|
||||||
Initialise the WorshipCenter Pro importer.
|
Initialise the WorshipCenter Pro importer.
|
||||||
"""
|
"""
|
||||||
SongImport.__init__(self, manager, **kwargs)
|
super(WorshipCenterProImport, self).__init__(manager, **kwargs)
|
||||||
|
|
||||||
def do_import(self):
|
def do_import(self):
|
||||||
"""
|
"""
|
||||||
|
@ -155,7 +155,7 @@ class TestRenderer(TestCase):
|
|||||||
expected_words = ['<br>[---] ']
|
expected_words = ['<br>[---] ']
|
||||||
service_item = ServiceItem(None)
|
service_item = ServiceItem(None)
|
||||||
|
|
||||||
# WHEN: Split the line based on word split rules
|
# WHEN: Split the line based on word split rules
|
||||||
result_words = renderer.format_slide(given_line, service_item)
|
result_words = renderer.format_slide(given_line, service_item)
|
||||||
|
|
||||||
# THEN: The blanks have been removed.
|
# THEN: The blanks have been removed.
|
||||||
|
@ -39,7 +39,7 @@ from openlp.core.ui import MainDisplay
|
|||||||
from openlp.core.ui.maindisplay import TRANSPARENT_STYLESHEET, OPAQUE_STYLESHEET
|
from openlp.core.ui.maindisplay import TRANSPARENT_STYLESHEET, OPAQUE_STYLESHEET
|
||||||
|
|
||||||
from tests.helpers.testmixin import TestMixin
|
from tests.helpers.testmixin import TestMixin
|
||||||
from tests.functional import MagicMock
|
from tests.functional import MagicMock, patch
|
||||||
|
|
||||||
SCREEN = {
|
SCREEN = {
|
||||||
'primary': False,
|
'primary': False,
|
||||||
@ -64,11 +64,14 @@ class TestMainDisplay(TestCase, TestMixin):
|
|||||||
self.registry = Registry()
|
self.registry = Registry()
|
||||||
self.setup_application()
|
self.setup_application()
|
||||||
Registry().register('application', self.app)
|
Registry().register('application', self.app)
|
||||||
|
self.mocked_audio_player = patch('openlp.core.ui.maindisplay.AudioPlayer')
|
||||||
|
self.mocked_audio_player.start()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
"""
|
"""
|
||||||
Delete QApplication.
|
Delete QApplication.
|
||||||
"""
|
"""
|
||||||
|
self.mocked_audio_player.stop()
|
||||||
del self.screens
|
del self.screens
|
||||||
|
|
||||||
def initial_main_display_test(self):
|
def initial_main_display_test(self):
|
||||||
|
@ -560,6 +560,7 @@ class TestSlideController(TestCase):
|
|||||||
mocked_preview_widget.change_slide.assert_called_once_with(7)
|
mocked_preview_widget.change_slide.assert_called_once_with(7)
|
||||||
mocked_slide_selected.assert_called_once_with()
|
mocked_slide_selected.assert_called_once_with()
|
||||||
|
|
||||||
|
|
||||||
class TestInfoLabel(TestCase):
|
class TestInfoLabel(TestCase):
|
||||||
|
|
||||||
def paint_event_text_fits_test(self):
|
def paint_event_text_fits_test(self):
|
||||||
@ -570,7 +571,7 @@ class TestInfoLabel(TestCase):
|
|||||||
metrics = QtGui.QFontMetrics(font)
|
metrics = QtGui.QFontMetrics(font)
|
||||||
|
|
||||||
with patch('openlp.core.ui.slidecontroller.QtGui.QLabel'), \
|
with patch('openlp.core.ui.slidecontroller.QtGui.QLabel'), \
|
||||||
patch('openlp.core.ui.slidecontroller.QtGui.QPainter') as mocked_qpainter:
|
patch('openlp.core.ui.slidecontroller.QtGui.QPainter') as mocked_qpainter:
|
||||||
|
|
||||||
# GIVEN: An instance of InfoLabel, with mocked text return, width and rect methods
|
# GIVEN: An instance of InfoLabel, with mocked text return, width and rect methods
|
||||||
info_label = InfoLabel()
|
info_label = InfoLabel()
|
||||||
@ -598,7 +599,7 @@ class TestInfoLabel(TestCase):
|
|||||||
metrics = QtGui.QFontMetrics(font)
|
metrics = QtGui.QFontMetrics(font)
|
||||||
|
|
||||||
with patch('openlp.core.ui.slidecontroller.QtGui.QLabel'), \
|
with patch('openlp.core.ui.slidecontroller.QtGui.QLabel'), \
|
||||||
patch('openlp.core.ui.slidecontroller.QtGui.QPainter') as mocked_qpainter:
|
patch('openlp.core.ui.slidecontroller.QtGui.QPainter') as mocked_qpainter:
|
||||||
|
|
||||||
# GIVEN: An instance of InfoLabel, with mocked text return, width and rect methods
|
# GIVEN: An instance of InfoLabel, with mocked text return, width and rect methods
|
||||||
info_label = InfoLabel()
|
info_label = InfoLabel()
|
||||||
|
@ -48,13 +48,12 @@ class TestThemeManager(TestCase):
|
|||||||
# GIVEN: An instance of Theme Form and mocked QFileDialog which returns an empty string (similating a user
|
# GIVEN: An instance of Theme Form and mocked QFileDialog which returns an empty string (similating a user
|
||||||
# pressing cancel)
|
# pressing cancel)
|
||||||
with patch('openlp.core.ui.ThemeForm._setup'),\
|
with patch('openlp.core.ui.ThemeForm._setup'),\
|
||||||
patch('openlp.core.ui.themeform.get_images_filter',
|
patch('openlp.core.ui.themeform.get_images_filter',
|
||||||
**{'return_value': 'Image Files (*.bmp; *.gif)(*.bmp *.gif)'}),\
|
**{'return_value': 'Image Files (*.bmp; *.gif)(*.bmp *.gif)'}),\
|
||||||
patch('openlp.core.ui.themeform.QtGui.QFileDialog.getOpenFileName',
|
patch('openlp.core.ui.themeform.QtGui.QFileDialog.getOpenFileName',
|
||||||
**{'return_value': ''}) as mocked_get_open_file_name,\
|
**{'return_value': ''}) as mocked_get_open_file_name,\
|
||||||
patch('openlp.core.ui.themeform.translate', **{'return_value': 'Translated String'}),\
|
patch('openlp.core.ui.themeform.translate', **{'return_value': 'Translated String'}),\
|
||||||
patch('openlp.core.ui.ThemeForm.set_background_page_values') as mocked_set_background_page_values:
|
patch('openlp.core.ui.ThemeForm.set_background_page_values') as mocked_set_background_page_values:
|
||||||
|
|
||||||
instance = ThemeForm(None)
|
instance = ThemeForm(None)
|
||||||
mocked_image_file_edit = MagicMock()
|
mocked_image_file_edit = MagicMock()
|
||||||
mocked_image_file_edit.text.return_value = '/original_path/file.ext'
|
mocked_image_file_edit.text.return_value = '/original_path/file.ext'
|
||||||
@ -66,8 +65,8 @@ class TestThemeManager(TestCase):
|
|||||||
# THEN: The QFileDialog getOpenFileName and set_background_page_values moethods should have been called
|
# THEN: The QFileDialog getOpenFileName and set_background_page_values moethods should have been called
|
||||||
# with known arguments
|
# with known arguments
|
||||||
mocked_get_open_file_name.assert_called_once_with(instance, 'Translated String', '/original_path/file.ext',
|
mocked_get_open_file_name.assert_called_once_with(instance, 'Translated String', '/original_path/file.ext',
|
||||||
'Image Files (*.bmp; *.gif)(*.bmp *.gif);;All Files (*.*)'
|
'Image Files (*.bmp; *.gif)(*.bmp *.gif);;'
|
||||||
)
|
'All Files (*.*)')
|
||||||
mocked_set_background_page_values.assert_called_once_with()
|
mocked_set_background_page_values.assert_called_once_with()
|
||||||
|
|
||||||
def select_image_file_dialog_new_file_test(self):
|
def select_image_file_dialog_new_file_test(self):
|
||||||
@ -76,13 +75,12 @@ class TestThemeManager(TestCase):
|
|||||||
"""
|
"""
|
||||||
# GIVEN: An instance of Theme Form and mocked QFileDialog which returns a file path
|
# GIVEN: An instance of Theme Form and mocked QFileDialog which returns a file path
|
||||||
with patch('openlp.core.ui.ThemeForm._setup'),\
|
with patch('openlp.core.ui.ThemeForm._setup'),\
|
||||||
patch('openlp.core.ui.themeform.get_images_filter',
|
patch('openlp.core.ui.themeform.get_images_filter',
|
||||||
**{'return_value': 'Image Files (*.bmp; *.gif)(*.bmp *.gif)'}),\
|
**{'return_value': 'Image Files (*.bmp; *.gif)(*.bmp *.gif)'}),\
|
||||||
patch('openlp.core.ui.themeform.QtGui.QFileDialog.getOpenFileName',
|
patch('openlp.core.ui.themeform.QtGui.QFileDialog.getOpenFileName',
|
||||||
**{'return_value': '/new_path/file.ext'}) as mocked_get_open_file_name,\
|
**{'return_value': '/new_path/file.ext'}) as mocked_get_open_file_name,\
|
||||||
patch('openlp.core.ui.themeform.translate', **{'return_value': 'Translated String'}),\
|
patch('openlp.core.ui.themeform.translate', **{'return_value': 'Translated String'}),\
|
||||||
patch('openlp.core.ui.ThemeForm.set_background_page_values') as mocked_background_page_values:
|
patch('openlp.core.ui.ThemeForm.set_background_page_values') as mocked_background_page_values:
|
||||||
|
|
||||||
instance = ThemeForm(None)
|
instance = ThemeForm(None)
|
||||||
mocked_image_file_edit = MagicMock()
|
mocked_image_file_edit = MagicMock()
|
||||||
mocked_image_file_edit.text.return_value = '/original_path/file.ext'
|
mocked_image_file_edit.text.return_value = '/original_path/file.ext'
|
||||||
@ -95,8 +93,8 @@ class TestThemeManager(TestCase):
|
|||||||
# THEN: The QFileDialog getOpenFileName and set_background_page_values moethods should have been called
|
# THEN: The QFileDialog getOpenFileName and set_background_page_values moethods should have been called
|
||||||
# with known arguments and theme.background_filename should be set
|
# with known arguments and theme.background_filename should be set
|
||||||
mocked_get_open_file_name.assert_called_once_with(instance, 'Translated String', '/original_path/file.ext',
|
mocked_get_open_file_name.assert_called_once_with(instance, 'Translated String', '/original_path/file.ext',
|
||||||
'Image Files (*.bmp; *.gif)(*.bmp *.gif);;All Files (*.*)'
|
'Image Files (*.bmp; *.gif)(*.bmp *.gif);;'
|
||||||
)
|
'All Files (*.*)')
|
||||||
self.assertEqual(instance.theme.background_filename, '/new_path/file.ext',
|
self.assertEqual(instance.theme.background_filename, '/new_path/file.ext',
|
||||||
'theme.background_filename should be set to the path that the file dialog returns')
|
'theme.background_filename should be set to the path that the file dialog returns')
|
||||||
mocked_background_page_values.assert_called_once_with()
|
mocked_background_page_values.assert_called_once_with()
|
||||||
|
@ -83,7 +83,7 @@ class TestInitFunctions(TestMixin, TestCase):
|
|||||||
|
|
||||||
# THEN: The command 'libreoffice' should be called with the appropriate parameters
|
# THEN: The command 'libreoffice' should be called with the appropriate parameters
|
||||||
self.assertEquals(result, 'libreoffice --nologo --norestore --minimized --nodefault --nofirststartwizard'
|
self.assertEquals(result, 'libreoffice --nologo --norestore --minimized --nodefault --nofirststartwizard'
|
||||||
' "--accept=pipe,name=openlp_pipe;urp;"')
|
' "--accept=pipe,name=openlp_pipe;urp;"')
|
||||||
|
|
||||||
def get_uno_command_only_soffice_command_exists_test(self):
|
def get_uno_command_only_soffice_command_exists_test(self):
|
||||||
"""
|
"""
|
||||||
@ -101,7 +101,7 @@ class TestInitFunctions(TestMixin, TestCase):
|
|||||||
|
|
||||||
# THEN: The command 'soffice' should be called with the appropriate parameters
|
# THEN: The command 'soffice' should be called with the appropriate parameters
|
||||||
self.assertEquals(result, 'soffice --nologo --norestore --minimized --nodefault --nofirststartwizard'
|
self.assertEquals(result, 'soffice --nologo --norestore --minimized --nodefault --nofirststartwizard'
|
||||||
' "--accept=pipe,name=openlp_pipe;urp;"')
|
' "--accept=pipe,name=openlp_pipe;urp;"')
|
||||||
|
|
||||||
def get_uno_command_when_no_command_exists_test(self):
|
def get_uno_command_when_no_command_exists_test(self):
|
||||||
"""
|
"""
|
||||||
|
@ -98,4 +98,4 @@ class TestMediaItem(TestCase, TestMixin):
|
|||||||
|
|
||||||
# THEN: the item should not be added to the database.
|
# THEN: the item should not be added to the database.
|
||||||
self.assertEqual(self.media_item.create_from_service_item.call_count, 1,
|
self.assertEqual(self.media_item.create_from_service_item.call_count, 1,
|
||||||
'The item should have been added to the database')
|
'The item should have been added to the database')
|
||||||
|
@ -36,10 +36,11 @@ if os.name != 'nt':
|
|||||||
raise SkipTest('Not Windows, skipping test')
|
raise SkipTest('Not Windows, skipping test')
|
||||||
|
|
||||||
import pyodbc
|
import pyodbc
|
||||||
|
|
||||||
from openlp.plugins.songs.lib.importers.worshipcenterpro import WorshipCenterProImport
|
|
||||||
from tests.functional import patch, MagicMock
|
from tests.functional import patch, MagicMock
|
||||||
|
|
||||||
|
from openlp.core.common import Registry
|
||||||
|
from openlp.plugins.songs.lib.importers.worshipcenterpro import WorshipCenterProImport
|
||||||
|
|
||||||
|
|
||||||
class TestRecord(object):
|
class TestRecord(object):
|
||||||
"""
|
"""
|
||||||
@ -61,7 +62,7 @@ class WorshipCenterProImportLogger(WorshipCenterProImport):
|
|||||||
_title_assignment_list = []
|
_title_assignment_list = []
|
||||||
|
|
||||||
def __init__(self, manager):
|
def __init__(self, manager):
|
||||||
WorshipCenterProImport.__init__(self, manager)
|
WorshipCenterProImport.__init__(self, manager, filenames=[])
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def title(self):
|
def title(self):
|
||||||
@ -136,6 +137,12 @@ class TestWorshipCenterProSongImport(TestCase):
|
|||||||
"""
|
"""
|
||||||
Test the functions in the :mod:`worshipcenterproimport` module.
|
Test the functions in the :mod:`worshipcenterproimport` module.
|
||||||
"""
|
"""
|
||||||
|
def setUp(self):
|
||||||
|
"""
|
||||||
|
Create the registry
|
||||||
|
"""
|
||||||
|
Registry.create()
|
||||||
|
|
||||||
def create_importer_test(self):
|
def create_importer_test(self):
|
||||||
"""
|
"""
|
||||||
Test creating an instance of the WorshipCenter Pro file importer
|
Test creating an instance of the WorshipCenter Pro file importer
|
||||||
@ -145,7 +152,7 @@ class TestWorshipCenterProSongImport(TestCase):
|
|||||||
mocked_manager = MagicMock()
|
mocked_manager = MagicMock()
|
||||||
|
|
||||||
# WHEN: An importer object is created
|
# WHEN: An importer object is created
|
||||||
importer = WorshipCenterProImport(mocked_manager)
|
importer = WorshipCenterProImport(mocked_manager, filenames=[])
|
||||||
|
|
||||||
# THEN: The importer object should not be None
|
# THEN: The importer object should not be None
|
||||||
self.assertIsNotNone(importer, 'Import should not be none')
|
self.assertIsNotNone(importer, 'Import should not be none')
|
||||||
@ -157,13 +164,12 @@ class TestWorshipCenterProSongImport(TestCase):
|
|||||||
# GIVEN: A mocked out SongImport class, a mocked out pyodbc module, a mocked out translate method,
|
# GIVEN: A mocked out SongImport class, a mocked out pyodbc module, a mocked out translate method,
|
||||||
# a mocked "manager" and a mocked out log_error method.
|
# a mocked "manager" and a mocked out log_error method.
|
||||||
with patch('openlp.plugins.songs.lib.importers.worshipcenterpro.SongImport'), \
|
with patch('openlp.plugins.songs.lib.importers.worshipcenterpro.SongImport'), \
|
||||||
patch('openlp.plugins.songs.lib.importers.worshipcenterpro.pyodbc.connect') \
|
patch('openlp.plugins.songs.lib.importers.worshipcenterpro.pyodbc.connect') as mocked_pyodbc_connect, \
|
||||||
as mocked_pyodbc_connect, \
|
|
||||||
patch('openlp.plugins.songs.lib.importers.worshipcenterpro.translate') as mocked_translate:
|
patch('openlp.plugins.songs.lib.importers.worshipcenterpro.translate') as mocked_translate:
|
||||||
mocked_manager = MagicMock()
|
mocked_manager = MagicMock()
|
||||||
mocked_log_error = MagicMock()
|
mocked_log_error = MagicMock()
|
||||||
mocked_translate.return_value = 'Translated Text'
|
mocked_translate.return_value = 'Translated Text'
|
||||||
importer = WorshipCenterProImport(mocked_manager)
|
importer = WorshipCenterProImport(mocked_manager, filenames=[])
|
||||||
importer.log_error = mocked_log_error
|
importer.log_error = mocked_log_error
|
||||||
importer.import_source = 'import_source'
|
importer.import_source = 'import_source'
|
||||||
pyodbc_errors = [pyodbc.DatabaseError, pyodbc.IntegrityError, pyodbc.InternalError, pyodbc.OperationalError]
|
pyodbc_errors = [pyodbc.DatabaseError, pyodbc.IntegrityError, pyodbc.InternalError, pyodbc.OperationalError]
|
||||||
@ -187,7 +193,7 @@ class TestWorshipCenterProSongImport(TestCase):
|
|||||||
# GIVEN: A mocked out SongImport class, a mocked out pyodbc module with a simulated recordset, a mocked out
|
# GIVEN: A mocked out SongImport class, a mocked out pyodbc module with a simulated recordset, a mocked out
|
||||||
# translate method, a mocked "manager", add_verse method & mocked_finish method.
|
# translate method, a mocked "manager", add_verse method & mocked_finish method.
|
||||||
with patch('openlp.plugins.songs.lib.importers.worshipcenterpro.SongImport'), \
|
with patch('openlp.plugins.songs.lib.importers.worshipcenterpro.SongImport'), \
|
||||||
patch('openlp.plugins.songs.lib.importers.worshipcenterpro.pyodbc') as mocked_pyodbc, \
|
patch('openlp.plugins.songs.lib.importers.worshipcenterpro.pyodbc') as mocked_pyodbc, \
|
||||||
patch('openlp.plugins.songs.lib.importers.worshipcenterpro.translate') as mocked_translate:
|
patch('openlp.plugins.songs.lib.importers.worshipcenterpro.translate') as mocked_translate:
|
||||||
mocked_manager = MagicMock()
|
mocked_manager = MagicMock()
|
||||||
mocked_import_wizard = MagicMock()
|
mocked_import_wizard = MagicMock()
|
||||||
|
@ -31,8 +31,6 @@ Interface tests to test the openlp.core.ui.projector.editform.ProjectorEditForm(
|
|||||||
class and methods.
|
class and methods.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
|
||||||
import tempfile
|
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
|
|
||||||
from openlp.core.common import Registry, Settings
|
from openlp.core.common import Registry, Settings
|
||||||
@ -43,8 +41,6 @@ from tests.functional import patch
|
|||||||
from tests.helpers.testmixin import TestMixin
|
from tests.helpers.testmixin import TestMixin
|
||||||
from tests.resources.projector.data import TEST1_DATA, TEST2_DATA
|
from tests.resources.projector.data import TEST1_DATA, TEST2_DATA
|
||||||
|
|
||||||
tmpfile = tempfile.mkstemp(prefix='openlp-test-projectormanager', suffix='.sql')[1]
|
|
||||||
|
|
||||||
|
|
||||||
class TestProjectorEditForm(TestCase, TestMixin):
|
class TestProjectorEditForm(TestCase, TestMixin):
|
||||||
"""
|
"""
|
||||||
@ -60,8 +56,7 @@ class TestProjectorEditForm(TestCase, TestMixin):
|
|||||||
self.setup_application()
|
self.setup_application()
|
||||||
Registry.create()
|
Registry.create()
|
||||||
with patch('openlp.core.lib.projector.db.init_url') as mocked_init_url:
|
with patch('openlp.core.lib.projector.db.init_url') as mocked_init_url:
|
||||||
mocked_init_url.start()
|
mocked_init_url.return_value = 'sqlite://'
|
||||||
mocked_init_url.return_value = 'sqlite:///{}'.format(tmpfile)
|
|
||||||
self.projectordb = ProjectorDB()
|
self.projectordb = ProjectorDB()
|
||||||
self.projector_form = ProjectorEditForm(projectordb=self.projectordb)
|
self.projector_form = ProjectorEditForm(projectordb=self.projectordb)
|
||||||
|
|
||||||
@ -74,7 +69,6 @@ class TestProjectorEditForm(TestCase, TestMixin):
|
|||||||
"""
|
"""
|
||||||
self.projectordb.session.close()
|
self.projectordb.session.close()
|
||||||
del(self.projector_form)
|
del(self.projector_form)
|
||||||
os.remove(tmpfile)
|
|
||||||
self.destroy_settings()
|
self.destroy_settings()
|
||||||
|
|
||||||
def edit_form_add_projector_test(self):
|
def edit_form_add_projector_test(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user