Show More
@@ -0,0 +1,43 | |||
|
1 | ||
|
2 | // | |
|
3 | // Tests for the Session object | |
|
4 | // | |
|
5 | ||
|
6 | casper.notebook_test(function () { | |
|
7 | this.evaluate(function () { | |
|
8 | var kernel = IPython.notebook.session.kernel; | |
|
9 | IPython._channels = [ | |
|
10 | kernel.shell_channel, | |
|
11 | kernel.iopub_channel, | |
|
12 | kernel.stdin_channel | |
|
13 | ]; | |
|
14 | IPython.notebook.session.delete(); | |
|
15 | }); | |
|
16 | ||
|
17 | this.waitFor(function () { | |
|
18 | return this.evaluate(function(){ | |
|
19 | for (var i=0; i < IPython._channels.length; i++) { | |
|
20 | var ws = IPython._channels[i]; | |
|
21 | if (ws.readyState !== ws.CLOSED) { | |
|
22 | return false; | |
|
23 | } | |
|
24 | } | |
|
25 | return true; | |
|
26 | }); | |
|
27 | }); | |
|
28 | ||
|
29 | this.then(function () { | |
|
30 | var states = this.evaluate(function() { | |
|
31 | var states = []; | |
|
32 | for (var i = 0; i < IPython._channels.length; i++) { | |
|
33 | states.push(IPython._channels[i].readyState); | |
|
34 | } | |
|
35 | return states; | |
|
36 | }); | |
|
37 | ||
|
38 | for (var i = 0; i < states.length; i++) { | |
|
39 | this.test.assertEquals(states[i], WebSocket.CLOSED, | |
|
40 | "Session.delete closes websockets[" + i + "]"); | |
|
41 | } | |
|
42 | }); | |
|
43 | }); |
@@ -394,6 +394,7 define([ | |||
|
394 | 394 | error : utils.log_ajax_error, |
|
395 | 395 | }; |
|
396 | 396 | $.ajax(utils.url_join_encode(this.kernel_url), settings); |
|
397 | this.stop_channels(); | |
|
397 | 398 | } |
|
398 | 399 | }; |
|
399 | 400 |
@@ -80,6 +80,7 define([ | |||
|
80 | 80 | error : utils.log_ajax_error, |
|
81 | 81 | }; |
|
82 | 82 | this.kernel.running = false; |
|
83 | this.kernel.stop_channels(); | |
|
83 | 84 | var url = utils.url_join_encode(this.base_url, 'api/sessions', this.id); |
|
84 | 85 | $.ajax(url, settings); |
|
85 | 86 | }; |
@@ -1,12 +1,12 | |||
|
1 | 1 | |
|
2 | 2 | // |
|
3 | // Miscellaneous javascript tests | |
|
3 | // Kernel tests | |
|
4 | 4 | // |
|
5 | 5 | casper.notebook_test(function () { |
|
6 | 6 | this.evaluate(function () { |
|
7 | 7 | IPython.notebook.kernel.kernel_info( |
|
8 | 8 | function(msg){ |
|
9 |
|
|
|
9 | IPython._kernel_info_response = msg; | |
|
10 | 10 | }) |
|
11 | 11 | }); |
|
12 | 12 | |
@@ -24,5 +24,41 casper.notebook_test(function () { | |||
|
24 | 24 | this.test.assertTrue( kernel_info_response.msg_type === 'kernel_info_reply', 'Kernel info request return kernel_info_reply'); |
|
25 | 25 | this.test.assertTrue( kernel_info_response.content !== undefined, 'Kernel_info_reply is not undefined'); |
|
26 | 26 | }); |
|
27 | ||
|
27 | ||
|
28 | this.thenEvaluate(function () { | |
|
29 | var kernel = IPython.notebook.session.kernel; | |
|
30 | IPython._channels = [ | |
|
31 | kernel.shell_channel, | |
|
32 | kernel.iopub_channel, | |
|
33 | kernel.stdin_channel | |
|
34 | ]; | |
|
35 | kernel.kill(); | |
|
36 | }); | |
|
37 | ||
|
38 | this.waitFor(function () { | |
|
39 | return this.evaluate(function(){ | |
|
40 | for (var i=0; i < IPython._channels.length; i++) { | |
|
41 | var ws = IPython._channels[i]; | |
|
42 | if (ws.readyState !== ws.CLOSED) { | |
|
43 | return false; | |
|
44 | } | |
|
45 | } | |
|
46 | return true; | |
|
47 | }); | |
|
48 | }); | |
|
49 | ||
|
50 | this.then(function () { | |
|
51 | var states = this.evaluate(function() { | |
|
52 | var states = []; | |
|
53 | for (var i = 0; i < IPython._channels.length; i++) { | |
|
54 | states.push(IPython._channels[i].readyState); | |
|
55 | } | |
|
56 | return states; | |
|
57 | }); | |
|
58 | ||
|
59 | for (var i = 0; i < states.length; i++) { | |
|
60 | this.test.assertEquals(states[i], WebSocket.CLOSED, | |
|
61 | "Kernel.kill closes websockets[" + i + "]"); | |
|
62 | } | |
|
63 | }); | |
|
28 | 64 | }); |
General Comments 0
You need to be logged in to leave comments.
Login now