##// END OF EJS Templates
Improving tests and setting of Location header.
Brian E. Granger -
Show More
@@ -22,6 +22,7 b' from tornado import web'
22 from zmq.utils import jsonapi
22 from zmq.utils import jsonapi
23
23
24 from IPython.utils.jsonutil import date_default
24 from IPython.utils.jsonutil import date_default
25 from IPython.html.utils import url_path_join
25
26
26 from ...base.handlers import IPythonHandler, json_errors
27 from ...base.handlers import IPythonHandler, json_errors
27 from ...base.zmqhandlers import AuthenticatedZMQStreamHandler
28 from ...base.zmqhandlers import AuthenticatedZMQStreamHandler
@@ -45,7 +46,8 b' class MainKernelHandler(IPythonHandler):'
45 km = self.kernel_manager
46 km = self.kernel_manager
46 kernel_id = km.start_kernel()
47 kernel_id = km.start_kernel()
47 model = km.kernel_model(kernel_id, self.ws_url)
48 model = km.kernel_model(kernel_id, self.ws_url)
48 self.set_header('Location', '{0}api/kernels/{1}'.format(self.base_kernel_url, kernel_id))
49 location = url_path_join(self.base_kernel_url, 'api', 'kernels', kernel_id)
50 self.set_header('Location', location)
49 self.set_status(201)
51 self.set_status(201)
50 self.finish(jsonapi.dumps(model))
52 self.finish(jsonapi.dumps(model))
51
53
@@ -19,8 +19,10 b' Authors:'
19 import json
19 import json
20
20
21 from tornado import web
21 from tornado import web
22 from IPython.utils.jsonutil import date_default
22
23 from ...base.handlers import IPythonHandler, json_errors
23 from ...base.handlers import IPythonHandler, json_errors
24 from IPython.utils.jsonutil import date_default
25 from IPython.html.utils import url_path_join
24
26
25 #-----------------------------------------------------------------------------
27 #-----------------------------------------------------------------------------
26 # Session web service handlers
28 # Session web service handlers
@@ -62,7 +64,8 b' class SessionRootHandler(IPythonHandler):'
62 else:
64 else:
63 kernel_id = km.start_kernel(cwd=nbm.notebook_dir)
65 kernel_id = km.start_kernel(cwd=nbm.notebook_dir)
64 model = sm.create_session(name=name, path=path, kernel_id=kernel_id, ws_url=self.ws_url)
66 model = sm.create_session(name=name, path=path, kernel_id=kernel_id, ws_url=self.ws_url)
65 self.set_header('Location', '{0}/api/sessions/{1}'.format(self.base_project_url, model['id']))
67 location = url_path_join(self.base_kernel_url, 'api', 'sessions', model['id'])
68 self.set_header('Location', location)
66 self.set_status(201)
69 self.set_status(201)
67 self.finish(json.dumps(model, default=date_default))
70 self.finish(json.dumps(model, default=date_default))
68
71
@@ -74,6 +74,7 b' class SessionAPITest(NotebookTestBase):'
74 self.assertIn('id', newsession)
74 self.assertIn('id', newsession)
75 self.assertEqual(newsession['notebook']['name'], 'nb1.ipynb')
75 self.assertEqual(newsession['notebook']['name'], 'nb1.ipynb')
76 self.assertEqual(newsession['notebook']['path'], 'foo')
76 self.assertEqual(newsession['notebook']['path'], 'foo')
77 self.assertEqual(resp.headers['Location'], '/api/sessions/{0}'.format(newsession['id']))
77
78
78 sessions = self.sess_api.list().json()
79 sessions = self.sess_api.list().json()
79 self.assertEqual(sessions, [newsession])
80 self.assertEqual(sessions, [newsession])
General Comments 0
You need to be logged in to leave comments. Login now