def main_window_no_key(mocker, homedir): # Setup app = QApplication([]) gui = Window() app.setActiveWindow(gui) gui.show() controller = Controller("http://localhost", gui, mocker.MagicMock(), homedir, proxy=False) controller.qubes = False gui.setup(controller) # Create a source widget source_list = gui.main_view.source_list source = factory.Source(public_key=None) source_list.update([source]) # Create a file widget, message widget, and reply widget mocker.patch("securedrop_client.gui.widgets.humanize_filesize", return_value="100") mocker.patch( "securedrop_client.gui.SecureQLabel.get_elided_text", return_value="1-yellow-doc.gz.gpg" ) source.collection.append( [ factory.File(source=source, filename="1-yellow-doc.gz.gpg"), factory.Message(source=source, filename="2-yellow-msg.gpg"), factory.Reply(source=source, filename="3-yellow-reply.gpg"), ] ) source_list.setCurrentItem(source_list.item(0)) gui.main_view.on_source_changed() yield gui # Teardown gui.login_dialog.close() app.exit()
def test_setup(): """ Ensure the passed in controller is referenced and the various views are instantiated as expected. """ w = Window() mock_controller = mock.MagicMock() w.setup(mock_controller) assert w.controller == mock_controller
def test_show_login_error(): """ Ensures that an error message is displayed in the login dialog. """ mock_controller = mock.MagicMock() w = Window() w.setup(mock_controller) w.login_dialog = mock.MagicMock() w.show_login_error('boom') w.login_dialog.error.assert_called_once_with('boom')
def test_hide_login(): """ Ensure the login dialog is closed and hidden. """ mock_controller = mock.MagicMock() w = Window() w.setup(mock_controller) ld = mock.MagicMock() w.login_dialog = ld w.hide_login() ld.accept.assert_called_once_with() assert w.login_dialog is None
def test_show_login(): """ The login dialog is displayed with a clean state. """ mock_controller = mock.MagicMock() w = Window() w.setup(mock_controller) with mock.patch('securedrop_client.gui.main.LoginDialog') as mock_ld: w.show_login() mock_ld.assert_called_once_with(w) w.login_dialog.reset.assert_called_once_with() w.login_dialog.exec.assert_called_once_with()
def test_show_login_error(mocker): """ Ensures that an error message is displayed in the login dialog. """ w = Window() w.show_login = mocker.MagicMock() w.setup(mocker.MagicMock()) w.login_dialog = mocker.MagicMock() w.show_login_error("boom") w.login_dialog.error.assert_called_once_with("boom")
def modal_dialog(mocker, homedir): app = QApplication([]) gui = Window() gui.show() controller = Controller("http://localhost", gui, mocker.MagicMock(), homedir, proxy=False) controller.qubes = False gui.setup(controller) gui.login_dialog.close() app.setActiveWindow(gui) dialog = ModalDialog() yield dialog dialog.close() app.exit()
def export_dialog(mocker, homedir): app = QApplication([]) gui = Window() gui.show() controller = Controller("http://localhost", gui, mocker.MagicMock(), homedir, proxy=False) controller.qubes = False gui.setup(controller) gui.login_dialog.close() app.setActiveWindow(gui) dialog = ExportDialog(controller, "file_uuid", "file_name") dialog.show() yield dialog dialog.close() gui.close()
def test_setup(mocker): """ Ensure the passed in controller is referenced and the various views are instantiated as expected. """ w = Window() mock_controller = mocker.MagicMock() w.show_login = mocker.MagicMock() w.top_pane = mocker.MagicMock() w.left_pane = mocker.MagicMock() w.main_view = mocker.MagicMock() w.setup(mock_controller) assert w.controller == mock_controller w.top_pane.setup.assert_called_once_with(mock_controller) w.left_pane.setup.assert_called_once_with(w, mock_controller) w.main_view.setup.assert_called_once_with(mock_controller) w.show_login.assert_called_once_with()