def test_on_import_no_clicked(self, mocked_translate, mocked_question): """ Test that when a song is imported and the user clicks the "no" button, the UI exits """ # GIVEN: A valid SongSelectForm with a mocked out QMessageBox.question() method mocked_translate.side_effect = lambda *args: args[1] mocked_question.return_value = QtWidgets.QMessageBox.No ssform = SongSelectForm(None, MagicMock(), MagicMock()) mocked_song_select_importer = MagicMock() ssform.song_select_importer = mocked_song_select_importer ssform.song = None # WHEN: The import button is clicked, and the user clicks Yes with patch.object(ssform, 'done') as mocked_done: ssform.on_import_button_clicked() # THEN: The on_back_button_clicked() method should have been called mocked_song_select_importer.save_song.assert_called_with(None) mocked_question.assert_called_with( ssform, 'Song Imported', 'Your song has been imported, would you like to import more songs?', QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.Yes) mocked_done.assert_called_with(QtWidgets.QDialog.Accepted) self.assertIsNone(ssform.song)
def on_import_yes_clicked_test(self, mocked_translate, mocked_question): """ Test that when a song is imported and the user clicks the "yes" button, the UI goes back to the previous page """ # GIVEN: A valid SongSelectForm with a mocked out QMessageBox.question() method mocked_translate.side_effect = lambda *args: args[1] mocked_question.return_value = QtGui.QMessageBox.Yes ssform = SongSelectForm(None, MagicMock(), MagicMock()) mocked_song_select_importer = MagicMock() ssform.song_select_importer = mocked_song_select_importer ssform.song = None # WHEN: The import button is clicked, and the user clicks Yes with patch.object( ssform, 'on_back_button_clicked') as mocked_on_back_button_clicked: ssform.on_import_button_clicked() # THEN: The on_back_button_clicked() method should have been called mocked_song_select_importer.save_song.assert_called_with(None) mocked_question.assert_called_with( ssform, 'Song Imported', 'Your song has been imported, would you like to import more songs?', QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes) mocked_on_back_button_clicked.assert_called_with() self.assertIsNone(ssform.song)
def on_import_no_clicked_test(self, mocked_translate, mocked_question): """ Test that when a song is imported and the user clicks the "no" button, the UI exits """ # GIVEN: A valid SongSelectForm with a mocked out QMessageBox.question() method mocked_translate.side_effect = lambda *args: args[1] mocked_question.return_value = QtGui.QMessageBox.No ssform = SongSelectForm(None, MagicMock(), MagicMock()) mocked_song_select_importer = MagicMock() ssform.song_select_importer = mocked_song_select_importer ssform.song = None # WHEN: The import button is clicked, and the user clicks Yes with patch.object(ssform, 'done') as mocked_done: ssform.on_import_button_clicked() # THEN: The on_back_button_clicked() method should have been called mocked_song_select_importer.save_song.assert_called_with(None) mocked_question.assert_called_with(ssform, 'Song Imported', 'Your song has been imported, would you like to import more songs?', QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes) mocked_done.assert_called_with(QtGui.QDialog.Accepted) self.assertIsNone(ssform.song)
def test_on_import_yes_clicked(self, mocked_translate, mocked_question): """ Test that when a song is imported and the user clicks the "yes" button, the UI goes back to the previous page """ # GIVEN: A valid SongSelectForm with a mocked out QMessageBox.question() method mocked_translate.side_effect = lambda *args: args[1] mocked_question.return_value = QtWidgets.QMessageBox.Yes ssform = SongSelectForm(None, MagicMock(), MagicMock()) mocked_song_select_importer = MagicMock() ssform.song_select_importer = mocked_song_select_importer ssform.song = None # WHEN: The import button is clicked, and the user clicks Yes with patch.object(ssform, 'on_back_button_clicked') as mocked_on_back_button_clicked: ssform.on_import_button_clicked() # THEN: The on_back_button_clicked() method should have been called mocked_song_select_importer.save_song.assert_called_with(None) mocked_question.assert_called_with(ssform, 'Song Imported', 'Your song has been imported, would you like to import more songs?', QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.Yes) mocked_on_back_button_clicked.assert_called_with() self.assertIsNone(ssform.song)