@@ -37,6 +37,32 @@ def test_codecomplete(self) -> None:
3737 self .assertEqual (str (reply ["content" ]["matches" ]), "['float', 'foo']" )
3838 self .assertEqual (reply ["content" ]["status" ], "ok" )
3939
40+ # Continuation
41+ code_continuation_incomplete = ' int foo = 12; \\ \n float bar = 1.5f;\\ '
42+ code_continuation_complete = ' int foo = 12; \\ \n float bar = 1.5f;'
43+
44+ def test_continuation (self ) -> None :
45+ if not self .code_continuation_incomplete or not self .code_continuation_complete :
46+ raise SkipTest ("No code continuation sample" )
47+
48+ # Incomplete
49+ self .flush_channels ()
50+ msg_id = self .kc .is_complete (self .code_continuation_incomplete )
51+ reply = self .get_non_kernel_info_reply (timeout = 1 )
52+ assert reply is not None
53+ self .assertEqual (reply ["msg_type" ], "is_complete_reply" )
54+ self .assertEqual (str (reply ["content" ]["indent" ]), " " )
55+ self .assertEqual (reply ["content" ]["status" ], "incomplete" )
56+
57+ # Complete
58+ self .flush_channels ()
59+ msg_id = self .kc .is_complete (self .code_continuation_complete )
60+ reply = self .get_non_kernel_info_reply (timeout = 1 )
61+ assert reply is not None
62+ self .assertEqual (reply ["msg_type" ], "is_complete_reply" )
63+ self .assertEqual (str (reply ["content" ]["indent" ]), "" )
64+ self .assertEqual (reply ["content" ]["status" ], "complete" )
65+
4066
4167class XCppTests (jupyter_kernel_test .KernelTests ):
4268
0 commit comments