def _run_async_code(self, code, filename=None, line_no=0):
        executor = PythonCodeExecution()
        recv = Receiver()
        executor.sig_exec_success.connect(recv.on_success)
        executor.sig_exec_error.connect(recv.on_error)
        task = executor.execute_async(code, line_no, filename)
        task.join()
        QCoreApplication.sendPostedEvents()

        return executor, recv
 def test_connected_receiver_receives_text(self):
     with patch("sys.stdout") as mock_stdout:
         mock_stdout.fileno.return_value = -1
         recv = Receiver()
         writer = WriteToSignal(mock_stdout)
         writer.sig_write_received.connect(recv.capture_text)
         txt = "I expect to see this"
         writer.write(txt)
         QCoreApplication.sendPostedEvents()
         self.assertEqual(txt, recv.captured_txt)
         mock_stdout.fileno.assert_called_once_with()