forked from openlp/openlp
fix tests and add basic test
This commit is contained in:
parent
b860abb23b
commit
a013d17bdd
@ -32,6 +32,7 @@ OpenLP work.
|
|||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
|
import sys
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -54,4 +55,13 @@ def check_directory_exists(directory, do_not_log=False):
|
|||||||
except IOError:
|
except IOError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def get_frozen_path(frozen_option, non_frozen_option):
|
||||||
|
"""
|
||||||
|
Return a path based on the system status.
|
||||||
|
"""
|
||||||
|
if hasattr(sys, 'frozen') and sys.frozen == 1:
|
||||||
|
return frozen_option
|
||||||
|
return non_frozen_option
|
||||||
|
|
||||||
from .applocation import AppLocation
|
from .applocation import AppLocation
|
||||||
|
@ -41,7 +41,7 @@ if sys.platform != 'win32' and sys.platform != 'darwin':
|
|||||||
XDG_BASE_AVAILABLE = False
|
XDG_BASE_AVAILABLE = False
|
||||||
|
|
||||||
import openlp
|
import openlp
|
||||||
from openlp.core.common import check_directory_exists
|
from openlp.core.common import check_directory_exists, get_frozen_path
|
||||||
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
@ -136,15 +136,6 @@ class AppLocation(object):
|
|||||||
return path
|
return path
|
||||||
|
|
||||||
|
|
||||||
def get_frozen_path(frozen_option, non_frozen_option):
|
|
||||||
"""
|
|
||||||
Return a path based on the system status.
|
|
||||||
"""
|
|
||||||
if hasattr(sys, 'frozen') and sys.frozen == 1:
|
|
||||||
return frozen_option
|
|
||||||
return non_frozen_option
|
|
||||||
|
|
||||||
|
|
||||||
def _get_os_dir_path(dir_type):
|
def _get_os_dir_path(dir_type):
|
||||||
"""
|
"""
|
||||||
Return a path based on which OS and environment we are running in.
|
Return a path based on which OS and environment we are running in.
|
||||||
@ -177,4 +168,3 @@ def _get_os_dir_path(dir_type):
|
|||||||
if dir_type == AppLocation.DataDir:
|
if dir_type == AppLocation.DataDir:
|
||||||
return os.path.join(str(os.getenv('HOME')), '.openlp', 'data')
|
return os.path.join(str(os.getenv('HOME')), '.openlp', 'data')
|
||||||
return os.path.join(str(os.getenv('HOME')), '.openlp')
|
return os.path.join(str(os.getenv('HOME')), '.openlp')
|
||||||
|
|
||||||
|
1
tests/functional/openlp_core_common/__init__.py
Normal file
1
tests/functional/openlp_core_common/__init__.py
Normal file
@ -0,0 +1 @@
|
|||||||
|
__author__ = 'tim'
|
@ -32,7 +32,7 @@ Functional tests to test the AppLocation class and related methods.
|
|||||||
import copy
|
import copy
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
|
|
||||||
from openlp.core.common import AppLocation
|
from openlp.core.common import AppLocation, get_frozen_path
|
||||||
from tests.functional import patch
|
from tests.functional import patch
|
||||||
|
|
||||||
FILE_LIST = ['file1', 'file2', 'file3.txt', 'file4.txt', 'file5.mp3', 'file6.mp3']
|
FILE_LIST = ['file1', 'file2', 'file3.txt', 'file4.txt', 'file5.mp3', 'file6.mp3']
|
||||||
@ -46,10 +46,10 @@ class TestAppLocation(TestCase):
|
|||||||
"""
|
"""
|
||||||
Test the AppLocation.get_data_path() method
|
Test the AppLocation.get_data_path() method
|
||||||
"""
|
"""
|
||||||
with patch('openlp.core.utils.applocation.Settings') as mocked_class, \
|
with patch('openlp.core.lib.Settings') as mocked_class, \
|
||||||
patch('openlp.core.utils.AppLocation.get_directory') as mocked_get_directory, \
|
patch('openlp.core.common.AppLocation.get_directory') as mocked_get_directory, \
|
||||||
patch('openlp.core.utils.applocation.check_directory_exists') as mocked_check_directory_exists, \
|
patch('openlp.core.common.applocation.check_directory_exists') as mocked_check_directory_exists, \
|
||||||
patch('openlp.core.utils.applocation.os') as mocked_os:
|
patch('openlp.core.common.applocation.os') as mocked_os:
|
||||||
# GIVEN: A mocked out Settings class and a mocked out AppLocation.get_directory()
|
# GIVEN: A mocked out Settings class and a mocked out AppLocation.get_directory()
|
||||||
mocked_settings = mocked_class.return_value
|
mocked_settings = mocked_class.return_value
|
||||||
mocked_settings.contains.return_value = False
|
mocked_settings.contains.return_value = False
|
||||||
@ -70,8 +70,8 @@ class TestAppLocation(TestCase):
|
|||||||
"""
|
"""
|
||||||
Test the AppLocation.get_data_path() method when a custom location is set in the settings
|
Test the AppLocation.get_data_path() method when a custom location is set in the settings
|
||||||
"""
|
"""
|
||||||
with patch('openlp.core.utils.applocation.Settings') as mocked_class,\
|
with patch('openlp.core.lib.Settings') as mocked_class,\
|
||||||
patch('openlp.core.utils.applocation.os') as mocked_os:
|
patch('openlp.core.common.applocation.os') as mocked_os:
|
||||||
# GIVEN: A mocked out Settings class which returns a custom data location
|
# GIVEN: A mocked out Settings class which returns a custom data location
|
||||||
mocked_settings = mocked_class.return_value
|
mocked_settings = mocked_class.return_value
|
||||||
mocked_settings.contains.return_value = True
|
mocked_settings.contains.return_value = True
|
||||||
@ -90,8 +90,8 @@ class TestAppLocation(TestCase):
|
|||||||
"""
|
"""
|
||||||
Test the AppLocation.get_files() method with no parameters passed.
|
Test the AppLocation.get_files() method with no parameters passed.
|
||||||
"""
|
"""
|
||||||
with patch('openlp.core.utils.AppLocation.get_data_path') as mocked_get_data_path, \
|
with patch('openlp.core.common.AppLocation.get_data_path') as mocked_get_data_path, \
|
||||||
patch('openlp.core.utils.applocation.os.listdir') as mocked_listdir:
|
patch('openlp.core.common.applocation.os.listdir') as mocked_listdir:
|
||||||
# GIVEN: Our mocked modules/methods.
|
# GIVEN: Our mocked modules/methods.
|
||||||
mocked_get_data_path.return_value = 'test/dir'
|
mocked_get_data_path.return_value = 'test/dir'
|
||||||
mocked_listdir.return_value = copy.deepcopy(FILE_LIST)
|
mocked_listdir.return_value = copy.deepcopy(FILE_LIST)
|
||||||
@ -106,8 +106,8 @@ class TestAppLocation(TestCase):
|
|||||||
"""
|
"""
|
||||||
Test the AppLocation.get_files() method with all parameters passed.
|
Test the AppLocation.get_files() method with all parameters passed.
|
||||||
"""
|
"""
|
||||||
with patch('openlp.core.utils.AppLocation.get_data_path') as mocked_get_data_path, \
|
with patch('openlp.core.common.AppLocation.get_data_path') as mocked_get_data_path, \
|
||||||
patch('openlp.core.utils.applocation.os.listdir') as mocked_listdir:
|
patch('openlp.core.common.applocation.os.listdir') as mocked_listdir:
|
||||||
# GIVEN: Our mocked modules/methods.
|
# GIVEN: Our mocked modules/methods.
|
||||||
mocked_get_data_path.return_value = 'test/dir'
|
mocked_get_data_path.return_value = 'test/dir'
|
||||||
mocked_listdir.return_value = copy.deepcopy(FILE_LIST)
|
mocked_listdir.return_value = copy.deepcopy(FILE_LIST)
|
||||||
@ -125,8 +125,8 @@ class TestAppLocation(TestCase):
|
|||||||
"""
|
"""
|
||||||
Test the AppLocation.get_section_data_path() method
|
Test the AppLocation.get_section_data_path() method
|
||||||
"""
|
"""
|
||||||
with patch('openlp.core.utils.AppLocation.get_data_path') as mocked_get_data_path, \
|
with patch('openlp.core.common.AppLocation.get_data_path') as mocked_get_data_path, \
|
||||||
patch('openlp.core.utils.applocation.check_directory_exists') as mocked_check_directory_exists:
|
patch('openlp.core.common.applocation.check_directory_exists') as mocked_check_directory_exists:
|
||||||
# GIVEN: A mocked out AppLocation.get_data_path()
|
# GIVEN: A mocked out AppLocation.get_data_path()
|
||||||
mocked_get_data_path.return_value = 'test/dir'
|
mocked_get_data_path.return_value = 'test/dir'
|
||||||
mocked_check_directory_exists.return_value = True
|
mocked_check_directory_exists.return_value = True
|
||||||
@ -143,7 +143,7 @@ class TestAppLocation(TestCase):
|
|||||||
Test the AppLocation.get_directory() method for AppLocation.AppDir
|
Test the AppLocation.get_directory() method for AppLocation.AppDir
|
||||||
"""
|
"""
|
||||||
# GIVEN: A mocked out _get_frozen_path function
|
# GIVEN: A mocked out _get_frozen_path function
|
||||||
with patch('openlp.core.utils.applocation._get_frozen_path') as mocked_get_frozen_path:
|
with patch('openlp.core.common.applocation.get_frozen_path') as mocked_get_frozen_path:
|
||||||
mocked_get_frozen_path.return_value = 'app/dir'
|
mocked_get_frozen_path.return_value = 'app/dir'
|
||||||
|
|
||||||
# WHEN: We call AppLocation.get_directory
|
# WHEN: We call AppLocation.get_directory
|
||||||
@ -157,10 +157,10 @@ class TestAppLocation(TestCase):
|
|||||||
Test the AppLocation.get_directory() method for AppLocation.PluginsDir
|
Test the AppLocation.get_directory() method for AppLocation.PluginsDir
|
||||||
"""
|
"""
|
||||||
# GIVEN: _get_frozen_path, abspath, split and sys are mocked out
|
# GIVEN: _get_frozen_path, abspath, split and sys are mocked out
|
||||||
with patch('openlp.core.utils.applocation._get_frozen_path') as mocked_get_frozen_path, \
|
with patch('openlp.core.common.applocation.get_frozen_path') as mocked_get_frozen_path, \
|
||||||
patch('openlp.core.utils.applocation.os.path.abspath') as mocked_abspath, \
|
patch('openlp.core.common.applocation.os.path.abspath') as mocked_abspath, \
|
||||||
patch('openlp.core.utils.applocation.os.path.split') as mocked_split, \
|
patch('openlp.core.common.applocation.os.path.split') as mocked_split, \
|
||||||
patch('openlp.core.utils.applocation.sys') as mocked_sys:
|
patch('openlp.core.common.applocation.sys') as mocked_sys:
|
||||||
mocked_abspath.return_value = 'plugins/dir'
|
mocked_abspath.return_value = 'plugins/dir'
|
||||||
mocked_split.return_value = ['openlp']
|
mocked_split.return_value = ['openlp']
|
||||||
mocked_get_frozen_path.return_value = 'plugins/dir'
|
mocked_get_frozen_path.return_value = 'plugins/dir'
|
||||||
@ -172,3 +172,31 @@ class TestAppLocation(TestCase):
|
|||||||
|
|
||||||
# THEN: The correct directory should be returned
|
# THEN: The correct directory should be returned
|
||||||
self.assertEqual('plugins/dir', directory, 'Directory should be "plugins/dir"')
|
self.assertEqual('plugins/dir', directory, 'Directory should be "plugins/dir"')
|
||||||
|
|
||||||
|
def get_frozen_path_in_unfrozen_app_test(self):
|
||||||
|
"""
|
||||||
|
Test the _get_frozen_path() function when the application is not frozen (compiled by PyInstaller)
|
||||||
|
"""
|
||||||
|
with patch('openlp.core.utils.sys') as mocked_sys:
|
||||||
|
# GIVEN: The sys module "without" a "frozen" attribute
|
||||||
|
mocked_sys.frozen = None
|
||||||
|
|
||||||
|
# WHEN: We call _get_frozen_path() with two parameters
|
||||||
|
frozen_path = get_frozen_path('frozen', 'not frozen')
|
||||||
|
|
||||||
|
# THEN: The non-frozen parameter is returned
|
||||||
|
self.assertEqual('not frozen', frozen_path, '_get_frozen_path should return "not frozen"')
|
||||||
|
|
||||||
|
def get_frozen_path_in_frozen_app_test(self):
|
||||||
|
"""
|
||||||
|
Test the get_frozen_path() function when the application is frozen (compiled by PyInstaller)
|
||||||
|
"""
|
||||||
|
with patch('openlp.core.common.sys') as mocked_sys:
|
||||||
|
# GIVEN: The sys module *with* a "frozen" attribute
|
||||||
|
mocked_sys.frozen = 1
|
||||||
|
|
||||||
|
# WHEN: We call _get_frozen_path() with two parameters
|
||||||
|
frozen_path = get_frozen_path('frozen', 'not frozen')
|
||||||
|
|
||||||
|
# THEN: The frozen parameter is returned
|
||||||
|
self.assertEqual('frozen', frozen_path, 'Should return "frozen"')
|
65
tests/functional/openlp_core_lib/test_theme.py
Normal file
65
tests/functional/openlp_core_lib/test_theme.py
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2013 Raoul Snyman #
|
||||||
|
# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan #
|
||||||
|
# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, #
|
||||||
|
# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. #
|
||||||
|
# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, #
|
||||||
|
# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
|
||||||
|
# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, #
|
||||||
|
# Frode Woldsund, Martin Zibricky, Patrick Zimmermann #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# 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; version 2 of the License. #
|
||||||
|
# #
|
||||||
|
# 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, write to the Free Software Foundation, Inc., 59 #
|
||||||
|
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||||
|
###############################################################################
|
||||||
|
"""
|
||||||
|
Package to test the openlp.core.lib.theme package.
|
||||||
|
"""
|
||||||
|
from tests.functional import MagicMock, patch
|
||||||
|
from unittest import TestCase
|
||||||
|
|
||||||
|
from openlp.core.lib.theme import ThemeXML
|
||||||
|
|
||||||
|
|
||||||
|
class TestTheme(TestCase):
|
||||||
|
"""
|
||||||
|
Test the functions in the Theme module
|
||||||
|
"""
|
||||||
|
def setUp(self):
|
||||||
|
"""
|
||||||
|
Create the UI
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
"""
|
||||||
|
Delete all the C++ objects at the end so that we don't have a segfault
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
def test_new_theme(self):
|
||||||
|
"""
|
||||||
|
Test the theme creation - basic test
|
||||||
|
"""
|
||||||
|
# GIVEN: A new theme
|
||||||
|
|
||||||
|
# WHEN: A theme is created
|
||||||
|
default_theme = ThemeXML()
|
||||||
|
|
||||||
|
# THEN: We should get some default behaviours
|
||||||
|
self.assertTrue(default_theme.background_border_color == '#000000', 'The theme should have a black border')
|
||||||
|
self.assertTrue(default_theme.background_type == 'solid', 'There theme should have a solid backgrounds')
|
@ -31,7 +31,7 @@ Functional tests to test the AppLocation class and related methods.
|
|||||||
"""
|
"""
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
|
|
||||||
from openlp.core.utils import clean_filename, get_filesystem_encoding, _get_frozen_path, get_locale_key, \
|
from openlp.core.utils import clean_filename, get_filesystem_encoding, get_locale_key, \
|
||||||
get_natural_key, split_filename
|
get_natural_key, split_filename
|
||||||
from tests.functional import patch
|
from tests.functional import patch
|
||||||
|
|
||||||
@ -75,34 +75,6 @@ class TestUtils(TestCase):
|
|||||||
mocked_getdefaultencoding.assert_called_with()
|
mocked_getdefaultencoding.assert_called_with()
|
||||||
self.assertEqual('utf-8', result, 'The result should be "utf-8"')
|
self.assertEqual('utf-8', result, 'The result should be "utf-8"')
|
||||||
|
|
||||||
def get_frozen_path_in_unfrozen_app_test(self):
|
|
||||||
"""
|
|
||||||
Test the _get_frozen_path() function when the application is not frozen (compiled by PyInstaller)
|
|
||||||
"""
|
|
||||||
with patch('openlp.core.utils.sys') as mocked_sys:
|
|
||||||
# GIVEN: The sys module "without" a "frozen" attribute
|
|
||||||
mocked_sys.frozen = None
|
|
||||||
|
|
||||||
# WHEN: We call _get_frozen_path() with two parameters
|
|
||||||
frozen_path = _get_frozen_path('frozen', 'not frozen')
|
|
||||||
|
|
||||||
# THEN: The non-frozen parameter is returned
|
|
||||||
self.assertEqual('not frozen', frozen_path, '_get_frozen_path should return "not frozen"')
|
|
||||||
|
|
||||||
def get_frozen_path_in_frozen_app_test(self):
|
|
||||||
"""
|
|
||||||
Test the _get_frozen_path() function when the application is frozen (compiled by PyInstaller)
|
|
||||||
"""
|
|
||||||
with patch('openlp.core.utils.sys') as mocked_sys:
|
|
||||||
# GIVEN: The sys module *with* a "frozen" attribute
|
|
||||||
mocked_sys.frozen = 1
|
|
||||||
|
|
||||||
# WHEN: We call _get_frozen_path() with two parameters
|
|
||||||
frozen_path = _get_frozen_path('frozen', 'not frozen')
|
|
||||||
|
|
||||||
# THEN: The frozen parameter is returned
|
|
||||||
self.assertEqual('frozen', frozen_path, 'Should return "frozen"')
|
|
||||||
|
|
||||||
def split_filename_with_file_path_test(self):
|
def split_filename_with_file_path_test(self):
|
||||||
"""
|
"""
|
||||||
Test the split_filename() function with a path to a file
|
Test the split_filename() function with a path to a file
|
||||||
|
@ -105,7 +105,7 @@ class TestRemoteTab(TestCase):
|
|||||||
Test the set_urls function with standard defaults
|
Test the set_urls function with standard defaults
|
||||||
"""
|
"""
|
||||||
# GIVEN: A mocked location
|
# GIVEN: A mocked location
|
||||||
with patch('openlp.core.common.applocation.Settings') as mocked_class, \
|
with patch('openlp.core.lib.Settings') as mocked_class, \
|
||||||
patch('openlp.core.utils.AppLocation.get_directory') as mocked_get_directory, \
|
patch('openlp.core.utils.AppLocation.get_directory') as mocked_get_directory, \
|
||||||
patch('openlp.core.common.applocation.check_directory_exists') as mocked_check_directory_exists, \
|
patch('openlp.core.common.applocation.check_directory_exists') as mocked_check_directory_exists, \
|
||||||
patch('openlp.core.common.applocation.os') as mocked_os:
|
patch('openlp.core.common.applocation.os') as mocked_os:
|
||||||
@ -133,7 +133,7 @@ class TestRemoteTab(TestCase):
|
|||||||
Test the set_urls function with certificate available
|
Test the set_urls function with certificate available
|
||||||
"""
|
"""
|
||||||
# GIVEN: A mocked location
|
# GIVEN: A mocked location
|
||||||
with patch('openlp.core.common.applocation.Settings') as mocked_class, \
|
with patch('openlp.core.lib.Settings') as mocked_class, \
|
||||||
patch('openlp.core.utils.AppLocation.get_directory') as mocked_get_directory, \
|
patch('openlp.core.utils.AppLocation.get_directory') as mocked_get_directory, \
|
||||||
patch('openlp.core.common.applocation.check_directory_exists') as mocked_check_directory_exists, \
|
patch('openlp.core.common.applocation.check_directory_exists') as mocked_check_directory_exists, \
|
||||||
patch('openlp.core.common.applocation.os') as mocked_os:
|
patch('openlp.core.common.applocation.os') as mocked_os:
|
||||||
|
Loading…
Reference in New Issue
Block a user