@@ -32,6 +32,23 @@ def Cleanup_python_testfile()
32
32
delete (src_name)
33
33
enddef
34
34
35
+ def WaitPrompt (expected_prompt: string )
36
+ # Wait for Jupyter Console to be up and running
37
+ const bufnr = term_list ()[0 ]
38
+ var term_cursor_pos = term_getcursor (bufnr )
39
+ var term_cursor = term_getline (bufnr , term_cursor_pos[0 ])
40
+
41
+ var count = 0
42
+ const max_count = 15
43
+ while term_cursor !~ expected_prompt && count < max_count
44
+ redraw !
45
+ term_cursor_pos = term_getcursor (bufnr )
46
+ term_cursor = term_getline (bufnr , term_cursor_pos[0 ])
47
+ count += 1
48
+ sleep 1
49
+ endwhile
50
+ enddef
51
+
35
52
# Tests start here
36
53
def g: Test_replica_basic ()
37
54
Generate_python_testfile ()
@@ -41,30 +58,28 @@ def g:Test_replica_basic()
41
58
# Start console
42
59
exe " :ReplicaConsoleToggle"
43
60
WaitForAssert (() = > assert_equal (2 , winnr (' $' )))
44
- # TODO : Check how to remove the sleep
45
- # It must be very generous otherwise the CI tests won't pass.
46
- sleep 6
47
- redraw !
48
61
49
62
var bufnr = term_list ()[0 ]
50
- var term_cursor = term_getcursor (bufnr )
51
- var lastline = term_getline (bufnr , term_cursor[0 ])
52
-
63
+ var term_cursor_pos = term_getcursor (bufnr )
64
+ var term_cursor = term_getline (bufnr , term_cursor_pos[0 ])
53
65
var expected_prompt = ' [1]'
54
- assert_true (lastline = ~# expected_prompt)
66
+ WaitPrompt (expected_prompt)
67
+
68
+ term_cursor_pos = term_getcursor (bufnr )
69
+ var lastline = term_getline (bufnr , term_cursor_pos[0 ])
70
+ assert_match (expected_prompt, lastline)
55
71
56
72
# ReplicaSendCell
57
73
# {prompt_in_ipython_console: line_in_src_buffer}
58
74
var prompts_lines = {2 : 4 , 3 : 7 , 4 : 9 }
59
75
60
76
for [prompt , line ] in items (prompts_lines)
61
- exe " :ReplicaSendCell"
62
- sleep 2
63
- redraw !
64
77
expected_prompt = prompt
65
- term_cursor = term_getcursor (bufnr )
66
- lastline = term_getline (bufnr , term_cursor[0 ])
67
- WaitForAssert (() = > assert_true (lastline = ~# expected_prompt))
78
+ exe " :ReplicaSendCell"
79
+ WaitPrompt ($ ' [{prompt}]' )
80
+ term_cursor_pos = term_getcursor (bufnr )
81
+ lastline = term_getline (bufnr , term_cursor_pos[0 ])
82
+ assert_true (lastline = ~# expected_prompt)
68
83
assert_true (line (' .' ) == line )
69
84
endfor
70
85
@@ -74,12 +89,11 @@ def g:Test_replica_basic()
74
89
75
90
for [prompt , line ] in items (prompts_lines)
76
91
exe " :ReplicaSendLine"
77
- sleep 1
78
- redraw !
92
+ WaitPrompt ($ ' [{prompt}]' )
79
93
expected_prompt = prompt
80
- term_cursor = term_getcursor (bufnr )
81
- lastline = term_getline (bufnr , term_cursor [0 ])
82
- WaitForAssert (() = > assert_true (lastline = ~# expected_prompt) )
94
+ term_cursor_pos = term_getcursor (bufnr )
95
+ lastline = term_getline (bufnr , term_cursor_pos [0 ])
96
+ assert_true (lastline = ~# expected_prompt)
83
97
assert_true (line (' .' ) == line )
84
98
endfor
85
99
@@ -98,24 +112,20 @@ def g:Test_replica_basic()
98
112
99
113
# Restart kernel
100
114
exe " :ReplicaConsoleRestart"
101
- sleep 5
102
- redraw !
103
- bufnr = term_list ()[0 ]
104
- term_cursor = term_getcursor (bufnr )
105
- lastline = term_getline (bufnr , term_cursor[0 ])
106
115
expected_prompt = ' [1]'
116
+ WaitPrompt (expected_prompt)
117
+ bufnr = term_list ()[0 ]
118
+ term_cursor_pos = term_getcursor (bufnr )
119
+ lastline = term_getline (bufnr , term_cursor_pos[0 ])
107
120
WaitForAssert (() = > assert_equal (2 , winnr (' $' )))
108
121
WaitForAssert (() = > assert_true (lastline = ~# expected_prompt))
109
122
110
123
# ReplicaSendFile
111
124
exe " :ReplicaSendFile"
112
- sleep 3
113
- redraw !
114
- term_cursor = term_getcursor (bufnr )
115
- lastline = term_getline (bufnr , term_cursor[0 ])
116
125
expected_prompt = ' [2]'
117
- echom lastline
118
- sleep 2
126
+ WaitPrompt (expected_prompt)
127
+ term_cursor_pos = term_getcursor (bufnr )
128
+ lastline = term_getline (bufnr , term_cursor_pos[0 ])
119
129
WaitForAssert (() = > assert_equal (2 , winnr (' $' )))
120
130
WaitForAssert (() = > assert_true (lastline = ~# expected_prompt))
121
131
0 commit comments