##// END OF EJS Templates
Merge pull request #2211 from minrk/datapub...
Merge pull request #2211 from minrk/datapub add data publication message Functions just like displaypub, but sends a namespace of actual data instead of representations. This uses the serialization/zero-copy machinery of the parallel code. The current interpretation of a sequence of data publications within a cell is updates of a single namespace. That is, a series of calls to publish_data(dict(A=...)) during a given cell will result in a single dict with the latest value of A, updated in-place. An alternate interpretation could be to keep appending to a list, but I expect the current update approach to be preferable. Changes along the way: AsyncResults no longer protect metadata access while results are pending. This was an artificial limitation, and impedes informed access of incomplete metadata, which actually works just fine.

File last commit:

r7876:ae3a5bcc
r8123:dfcd243b merge
Show More
test_kernelsession.py
27 lines | 835 B | text/x-python | PythonLexer
"""Tests for the notebook kernel and session manager."""
from unittest import TestCase
from IPython.frontend.html.notebook.kernelmanager import MultiKernelManager
class TestKernelManager(TestCase):
def test_km_lifecycle(self):
km = MultiKernelManager()
kid = km.start_kernel()
self.assertTrue(kid in km)
self.assertEqual(len(km),1)
km.kill_kernel(kid)
self.assertTrue(not kid in km)
kid = km.start_kernel()
self.assertEqual('127.0.0.1',km.get_kernel_ip(kid))
port_dict = km.get_kernel_ports(kid)
self.assertTrue('stdin_port' in port_dict)
self.assertTrue('iopub_port' in port_dict)
self.assertTrue('shell_port' in port_dict)
self.assertTrue('hb_port' in port_dict)
km.get_kernel(kid)
km.kill_kernel(kid)