Fix failing tests

bzr-revno: 2140
This commit is contained in:
Raoul Snyman 2013-01-07 16:40:26 +00:00 committed by Tim Bentley
commit 14bc31e446
2 changed files with 44 additions and 4 deletions

View File

@ -3,9 +3,9 @@ Package to test the openlp.core.lib package.
""" """
from unittest import TestCase from unittest import TestCase
from mock import MagicMock, patch from mock import MagicMock, patch, call
from openlp.core.lib import str_to_bool, translate, check_directory_exists from openlp.core.lib import str_to_bool, translate, check_directory_exists, get_text_file_string
class TestLib(TestCase): class TestLib(TestCase):
@ -156,3 +156,44 @@ class TestLib(TestCase):
# THEN: check_directory_exists raises an exception # THEN: check_directory_exists raises an exception
mocked_exists.assert_called_with(directory_to_check) mocked_exists.assert_called_with(directory_to_check)
self.assertRaises(ValueError, check_directory_exists, directory_to_check) self.assertRaises(ValueError, check_directory_exists, directory_to_check)
def get_text_file_string_no_file_test(self):
"""
Test the get_text_file_string() function when a file does not exist
"""
with patch(u'openlp.core.lib.os.path.isfile') as mocked_isfile:
# GIVEN: A mocked out isfile which returns true, and a text file name
filename = u'testfile.txt'
mocked_isfile.return_value = False
# WHEN: get_text_file_string is called
result = get_text_file_string(filename)
# THEN: The result should be False
mocked_isfile.assert_called_with(filename)
assert result is False, u'False should be returned if no file exists'
def get_text_file_string_read_error_test(self):
"""
Test the get_text_file_string() method when a read error happens
"""
with patch(u'openlp.core.lib.os.path.isfile') as mocked_isfile, patch(u'__builtin__.open') as mocked_open:
# GIVEN: A mocked-out open() which raises an exception and isfile returns True
filename = u'testfile.txt'
mocked_isfile.return_value = True
mocked_open.side_effect = IOError()
# WHEN: get_text_file_string is called
result = get_text_file_string(filename)
# THEN: None should be returned
mocked_isfile.assert_called_with(filename)
mocked_open.assert_called_with(filename, u'r')
assert result is None, u'None should be returned if the file cannot be opened'
def get_text_file_string_decode_error_test(self):
"""
Test the get_text_file_string() method when the contents cannot be decoded
"""
assert True, u'Impossible to test due to conflicts when mocking out the "open" function'

View File

@ -48,8 +48,7 @@ class TestAppLocation(TestCase):
data_path = AppLocation.get_data_path() data_path = AppLocation.get_data_path()
# THEN: the mocked Settings methods were called and the value returned was our set up value # THEN: the mocked Settings methods were called and the value returned was our set up value
mocked_settings.contains.assert_called_with(u'advanced/data path') mocked_settings.contains.assert_called_with(u'advanced/data path')
mocked_settings.value.assert_called_with(u'advanced/data path') mocked_settings.value.assert_called_with(u'advanced/data path', u'')
mocked_settings.value.return_value.toString.assert_called_with()
assert data_path == u'custom/dir', u'Result should be "custom/dir"' assert data_path == u'custom/dir', u'Result should be "custom/dir"'
def get_section_data_path_test(self): def get_section_data_path_test(self):