22
33from ipykernel .comm import Comm , CommManager
44from ipykernel .ipkernel import IPythonKernel
5+ from ipykernel .kernelbase import Kernel
56
67
7- def test_comm (kernel ) :
8+ def test_comm (kernel : Kernel ) -> None :
89 manager = CommManager (kernel = kernel )
9- kernel .comm_manager = manager
10+ kernel .comm_manager = manager # type:ignore
1011
1112 c = Comm (kernel = kernel , target_name = "bar" )
1213 msgs = []
1314
15+ assert kernel is c .kernel # type:ignore
16+
1417 def on_close (msg ):
1518 msgs .append (msg )
1619
@@ -28,7 +31,7 @@ def on_message(msg):
2831 assert c .target_name == "bar"
2932
3033
31- def test_comm_manager (kernel ) :
34+ def test_comm_manager (kernel : Kernel ) -> None :
3235 manager = CommManager (kernel = kernel )
3336 msgs = []
3437
@@ -48,14 +51,19 @@ def on_msg(msg):
4851 manager .register_target ("foo" , foo )
4952 manager .register_target ("fizz" , fizz )
5053
51- kernel .comm_manager = manager
54+ kernel .comm_manager = manager # type:ignore
5255 with unittest .mock .patch .object (Comm , "publish_msg" ) as publish_msg :
5356 comm = Comm ()
5457 comm .on_msg (on_msg )
5558 comm .on_close (on_close )
5659 manager .register_comm (comm )
5760 assert publish_msg .call_count == 1
5861
62+ # make sure that when we don't pass a kernel, the 'default' kernel is taken
63+ Kernel ._instance = kernel # type:ignore
64+ assert comm .kernel is kernel # type:ignore
65+ Kernel .clear_instance ()
66+
5967 assert manager .get_comm (comm .comm_id ) == comm
6068 assert manager .get_comm ('foo' ) is None
6169
0 commit comments