class TestEditVerseForm(TestCase, TestMixin): """ Test the functions in the :mod:`lib` module. """ def setUp(self): """ Set up the components need for all tests. """ self.edit_verse_form = EditVerseForm(None) self.setup_application() self.build_settings() QtCore.QLocale.setDefault(QtCore.QLocale('en_GB')) def tearDown(self): """ Delete all the C++ objects at the end so that we don't have a segfault """ self.destroy_settings() def test_update_suggested_verse_number(self): """ Test that update_suggested_verse_number() has no effect when editing a single verse """ # GIVEN some input values self.edit_verse_form.has_single_verse = True self.edit_verse_form.verse_type_combo_box.currentIndex = MagicMock(return_value=0) self.edit_verse_form.verse_text_edit.toPlainText = MagicMock(return_value='Text') self.edit_verse_form.verse_number_box.setValue(3) # WHEN the method is called self.edit_verse_form.update_suggested_verse_number() # THEN the verse number must not be changed self.assertEqual(3, self.edit_verse_form.verse_number_box.value(), 'The verse number should be 3')
class TestEditVerseForm(TestCase, TestMixin): """ Test the functions in the :mod:`lib` module. """ def setUp(self): """ Set up the components need for all tests. """ self.edit_verse_form = EditVerseForm(None) self.setup_application() self.build_settings() QtCore.QLocale.setDefault(QtCore.QLocale('en_GB')) def tearDown(self): """ Delete all the C++ objects at the end so that we don't have a segfault """ self.destroy_settings() def test_update_suggested_verse_number(self): """ Test that update_suggested_verse_number() has no effect when editing a single verse """ # GIVEN some input values self.edit_verse_form.has_single_verse = True self.edit_verse_form.verse_type_combo_box.currentIndex = MagicMock(return_value=0) self.edit_verse_form.verse_text_edit.toPlainText = MagicMock(return_value='Text') self.edit_verse_form.verse_number_box.setValue(3) # WHEN the method is called self.edit_verse_form.update_suggested_verse_number() # THEN the verse number must not be changed self.assertEqual(3, self.edit_verse_form.verse_number_box.value(), 'The verse number should be 3')
class TestEditVerseForm(TestCase, TestMixin): """ Test the functions in the :mod:`lib` module. """ def setUp(self): """ Set up the components need for all tests. """ self.setup_application() self.build_settings() self.setting.setValue('songs/enable chords', True) Registry.create() Registry().register('settings', self.setting) self.edit_verse_form = EditVerseForm(None) QtCore.QLocale.setDefault(QtCore.QLocale('en_GB')) def tearDown(self): """ Delete all the C++ objects at the end so that we don't have a segfault """ self.destroy_settings() def test_update_suggested_verse_number_has_no_effect(self): """ Test that update_suggested_verse_number() has no effect when editing a single verse """ # GIVEN some input values self.edit_verse_form.has_single_verse = True self.edit_verse_form.verse_type_combo_box.currentIndex = MagicMock(return_value=0) self.edit_verse_form.verse_text_edit.toPlainText = MagicMock(return_value='Text') self.edit_verse_form.verse_number_box.setValue(3) # WHEN the method is called self.edit_verse_form.update_suggested_verse_number() # THEN the verse number must not be changed assert 3 == self.edit_verse_form.verse_number_box.value(), 'The verse number should be 3' def test_update_suggested_verse_number_different_type(self): """ Test that update_suggested_verse_number() returns 0 when editing a second verse of a different type """ # GIVEN some input values self.edit_verse_form.has_single_verse = False self.edit_verse_form.verse_type_combo_box.currentIndex = MagicMock(return_value=2) self.edit_verse_form.verse_text_edit.toPlainText = MagicMock(return_value='Text') self.edit_verse_form.verse_number_box.setValue(3) # WHEN the method is called self.edit_verse_form.update_suggested_verse_number() # THEN the verse number must be changed to 1 assert 1 == self.edit_verse_form.verse_number_box.value(), 'The verse number should be 1' def test_on_divide_split_button_clicked(self): """ Test that divide adds text at the correct position """ # GIVEN some input values self.edit_verse_form.verse_type_combo_box.currentIndex = MagicMock(return_value=4) self.edit_verse_form.verse_text_edit.setPlainText('Text\n') # WHEN the method is called self.edit_verse_form.on_forced_split_button_clicked() # THEN the verse number must not be changed assert '[--}{--]\nText\n' == self.edit_verse_form.verse_text_edit.toPlainText(), \ 'The verse number should be [--}{--]\nText\n' def test_on_split_button_clicked(self): """ Test that divide adds text at the correct position """ # GIVEN some input values self.edit_verse_form.verse_type_combo_box.currentIndex = MagicMock(return_value=4) self.edit_verse_form.verse_text_edit.setPlainText('Text\n') # WHEN the method is called self.edit_verse_form.on_overflow_split_button_clicked() # THEN the verse number must not be changed assert '[---]\nText\n' == self.edit_verse_form.verse_text_edit.toPlainText(), \ 'The verse number should be [---]\nText\n'