Fix up test

This commit is contained in:
Philip Ridout 2017-05-13 08:05:44 +01:00
parent 30825cb8d1
commit 748eb9cd0b
1 changed files with 15 additions and 54 deletions

View File

@ -34,60 +34,21 @@ class TestThemeManager(TestCase):
"""
Test the functions in the ThemeManager Class
"""
def test_select_image_file_dialog_cancelled(self):
"""
Test the select image file dialog when the user presses cancel
"""
# GIVEN: An instance of Theme Form and mocked QFileDialog which returns an empty string (similating a user
# pressing cancel)
with patch('openlp.core.ui.ThemeForm._setup'),\
patch('openlp.core.ui.themeform.get_images_filter',
**{'return_value': 'Image Files (*.bmp; *.gif)(*.bmp *.gif)'}),\
patch('openlp.core.ui.themeform.QtWidgets.QFileDialog.getOpenFileName',
**{'return_value': ('', '')}) as mocked_get_open_file_name,\
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:
instance = ThemeForm(None)
mocked_image_file_edit = MagicMock()
mocked_image_file_edit.text.return_value = '/original_path/file.ext'
instance.image_path_edit = mocked_image_file_edit
def setUp(self):
with patch('openlp.core.ui.ThemeForm._setup'):
self.instance = ThemeForm(None)
# WHEN: on_image_browse_button is clicked
instance.on_image_path_edit_path_changed()
def test_on_image_path_edit_path_changed(self):
"""
Test the `image_path_edit.pathChanged` handler
"""
# GIVEN: An instance of Theme Form
with patch.object(self.instance, 'set_background_page_values') as mocked_set_background_page_values:
self.instance.theme = MagicMock()
# THEN: The QFileDialog getOpenFileName and set_background_page_values moethods should have been called
# with known arguments
mocked_get_open_file_name.assert_called_once_with(instance, 'Translated String', '/original_path/file.ext',
'Image Files (*.bmp; *.gif)(*.bmp *.gif);;'
'All Files (*.*)')
# WHEN: `on_image_path_edit_path_changed` is clicked
self.instance.on_image_path_edit_path_changed('/new/pat.h')
# THEN: The theme background file should be set and `set_background_page_values` should have been called
self.assertEqual(self.instance.theme.background_filename, '/new/pat.h')
mocked_set_background_page_values.assert_called_once_with()
def test_select_image_file_dialog_new_file(self):
"""
Test the select image file dialog when the user presses ok
"""
# GIVEN: An instance of Theme Form and mocked QFileDialog which returns a file path
with patch('openlp.core.ui.ThemeForm._setup'),\
patch('openlp.core.ui.themeform.get_images_filter',
**{'return_value': 'Image Files (*.bmp; *.gif)(*.bmp *.gif)'}),\
patch('openlp.core.ui.themeform.QtWidgets.QFileDialog.getOpenFileName',
**{'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.set_background_page_values') as mocked_background_page_values:
instance = ThemeForm(None)
mocked_image_file_edit = MagicMock()
mocked_image_file_edit.text.return_value = '/original_path/file.ext'
instance.image_path_edit = mocked_image_file_edit
instance.theme = MagicMock()
# WHEN: on_image_browse_button is clicked
instance.on_image_path_edit_path_changed()
# THEN: The QFileDialog getOpenFileName and set_background_page_values moethods should have been called
# 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',
'Image Files (*.bmp; *.gif)(*.bmp *.gif);;'
'All Files (*.*)')
self.assertEqual(instance.theme.background_filename, '/new_path/file.ext',
'theme.background_filename should be set to the path that the file dialog returns')
mocked_background_page_values.assert_called_once_with()