Added tests

This commit is contained in:
Phill Ridout 2015-02-13 23:10:16 +00:00
parent af2467ed93
commit 498d17b000
2 changed files with 22 additions and 3 deletions

View File

@ -535,7 +535,6 @@ class ThemeManager(OpenLPMixin, RegistryMixin, QtGui.QWidget, Ui_ThemeManager, R
:param directory: :param directory:
""" """
self.log_debug('Unzipping theme %s' % file_name) self.log_debug('Unzipping theme %s' % file_name)
file_name = str(file_name)
theme_zip = None theme_zip = None
out_file = None out_file = None
file_xml = None file_xml = None

View File

@ -27,14 +27,13 @@ import os
import shutil import shutil
from unittest import TestCase from unittest import TestCase
from tests.functional import MagicMock
from tempfile import mkdtemp from tempfile import mkdtemp
from openlp.core.ui import ThemeManager from openlp.core.ui import ThemeManager
from openlp.core.common import Registry from openlp.core.common import Registry
from tests.utils.constants import TEST_RESOURCES_PATH from tests.utils.constants import TEST_RESOURCES_PATH
from tests.functional import MagicMock, patch from tests.functional import ANY, MagicMock, patch
class TestThemeManager(TestCase): class TestThemeManager(TestCase):
@ -152,3 +151,24 @@ class TestThemeManager(TestCase):
self.assertTrue(os.path.exists(os.path.join(folder, 'Moss on tree', 'Moss on tree.xml'))) self.assertTrue(os.path.exists(os.path.join(folder, 'Moss on tree', 'Moss on tree.xml')))
self.assertEqual(mocked_critical_error_message_box.call_count, 0, 'No errors should have happened') self.assertEqual(mocked_critical_error_message_box.call_count, 0, 'No errors should have happened')
shutil.rmtree(folder) shutil.rmtree(folder)
def unzip_theme_invalid_version_test(self):
"""
Test that themes with invalid (< 2.0) or with no version attributes are rejected
"""
# GIVEN: An instance of ThemeManager whilst mocking a theme that returns a theme with no version attribute
with patch('openlp.core.ui.thememanager.zipfile.ZipFile') as mocked_zip_file,\
patch('openlp.core.ui.thememanager.ElementTree.getroot') as mocked_getroot,\
patch('openlp.core.ui.thememanager.XML'),\
patch('openlp.core.ui.thememanager.critical_error_message_box') as mocked_critical_error_message_box:
mocked_zip_file.return_value = MagicMock(**{'namelist.return_value': [os.path.join('theme', 'theme.xml')]})
mocked_getroot.return_value = MagicMock(**{'get.return_value': None})
theme_manager = ThemeManager(None)
# WHEN: unzip_theme is called
theme_manager.unzip_theme('theme.file', 'folder')
# THEN: The critical_error_message_box should have been called
mocked_critical_error_message_box.assert_called_once(ANY, ANY)