diff --git a/IPython/frontend/html/notebook/kernelmanager.py b/IPython/frontend/html/notebook/kernelmanager.py index c79ab6f..70d2f4f 100644 --- a/IPython/frontend/html/notebook/kernelmanager.py +++ b/IPython/frontend/html/notebook/kernelmanager.py @@ -79,6 +79,11 @@ class MultiKernelManager(LoggingConfigurable): The caller can pick a kernel_id by passing one in as a keyword arg, otherwise one will be picked using a uuid. + + To silence the kernel's stdout/stderr, call this using:: + + km.start_kernel(stdout=PIPE, stderr=PIPE) + """ kernel_id = kwargs.pop('kernel_id', unicode(uuid.uuid4())) if kernel_id in self: diff --git a/IPython/frontend/html/notebook/tests/test_kernelmanager.py b/IPython/frontend/html/notebook/tests/test_kernelmanager.py index 870f1a9..3b8c18a 100644 --- a/IPython/frontend/html/notebook/tests/test_kernelmanager.py +++ b/IPython/frontend/html/notebook/tests/test_kernelmanager.py @@ -1,5 +1,6 @@ """Tests for the notebook kernel and session manager.""" +from subprocess import PIPE import time from unittest import TestCase @@ -20,7 +21,7 @@ class TestKernelManager(TestCase): return km def _run_lifecycle(self, km): - kid = km.start_kernel() + kid = km.start_kernel(stdout=PIPE, stderr=PIPE) self.assertTrue(kid in km) self.assertTrue(kid in km.list_kernel_ids()) self.assertEqual(len(km),1) @@ -40,7 +41,7 @@ class TestKernelManager(TestCase): self.assertTrue(not kid in km) def _run_cinfo(self, km, transport, ip): - kid = km.start_kernel() + kid = km.start_kernel(stdout=PIPE, stderr=PIPE) k = km.get_kernel(kid) cinfo = km.get_connection_info(kid) self.assertEqual(transport, cinfo['transport']) diff --git a/IPython/zmq/tests/test_kernelmanager.py b/IPython/zmq/tests/test_kernelmanager.py index 05313a6..f6482c2 100644 --- a/IPython/zmq/tests/test_kernelmanager.py +++ b/IPython/zmq/tests/test_kernelmanager.py @@ -1,5 +1,6 @@ """Tests for the notebook kernel and session manager.""" +from subprocess import PIPE import time from unittest import TestCase @@ -19,7 +20,7 @@ class TestKernelManager(TestCase): return km def _run_lifecycle(self, km): - km.start_kernel() + km.start_kernel(stdout=PIPE, stderr=PIPE) km.start_channels(shell=True, iopub=False, stdin=False, hb=False) km.restart_kernel() # We need a delay here to give the restarting kernel a chance to @@ -28,7 +29,7 @@ class TestKernelManager(TestCase): # message for the restart sometimes hasn't been sent to the kernel. # Because linger is oo on the shell channel, the context can't # close until the message is sent to the kernel, which is not dead. - time.sleep() + time.sleep(1.0) km.interrupt_kernel() self.assertTrue(isinstance(km, KernelManager)) km.shutdown_kernel()