diff --git a/ipykernel/kernelapp.py b/ipykernel/kernelapp.py index fcbe5e479..5e1f8bb76 100644 --- a/ipykernel/kernelapp.py +++ b/ipykernel/kernelapp.py @@ -363,7 +363,9 @@ def init_kernel(self): profile_dir=self.profile_dir, user_ns=self.user_ns, ) - kernel.record_ports(self.ports) + kernel.record_ports({ + name + '_port': port for name, port in self.ports.items() + }) self.kernel = kernel # Allow the displayhook to get the execution count diff --git a/ipykernel/tests/test_message_spec.py b/ipykernel/tests/test_message_spec.py index 334a3add7..06c81b0d3 100644 --- a/ipykernel/tests/test_message_spec.py +++ b/ipykernel/tests/test_message_spec.py @@ -164,6 +164,15 @@ def check(self, d): Reference.check(self, d) LanguageInfo().check(d['language_info']) + +class ConnectReply(Reference): + shell_port = Integer() + control_port = Integer() + stdin_port = Integer() + iopub_port = Integer() + hb_port = Integer() + + class CommInfoReply(Reference): comms = Dict() @@ -212,6 +221,7 @@ class HistoryReply(Reference): 'status' : Status(), 'complete_reply' : CompleteReply(), 'kernel_info_reply': KernelInfoReply(), + 'connect_reply': ConnectReply(), 'comm_info_reply': CommInfoReply(), 'is_complete_reply': IsCompleteReply(), 'execute_input' : ExecuteInput(), @@ -424,6 +434,17 @@ def test_kernel_info_request(): validate_message(reply, 'kernel_info_reply', msg_id) +def test_connect_request(): + flush_channels() + msg = KC.session.msg('connect_request') + KC.shell_channel.send(msg) + return msg['header']['msg_id'] + + msg_id = KC.kernel_info() + reply = KC.get_shell_msg(timeout=TIMEOUT) + validate_message(reply, 'connect_reply', msg_id) + + def test_comm_info_request(): flush_channels() if not hasattr(KC, 'comm_info'):