Show More
@@ -1,8 +1,9 b'' | |||
|
1 | import json | |
|
1 | 2 | import os |
|
2 | 3 | |
|
3 | 4 | from tornado import web |
|
4 | 5 | |
|
5 | from ..base.handlers import IPythonHandler | |
|
6 | from ..base.handlers import IPythonHandler, json_errors | |
|
6 | 7 | from IPython.nbformat.current import to_notebook_json |
|
7 | 8 | from IPython.nbconvert.exporters.export import exporter_map |
|
8 | 9 | from IPython.utils import tz |
@@ -69,6 +70,19 b' class NbconvertPostHandler(IPythonHandler):' | |||
|
69 | 70 | |
|
70 | 71 | self.finish(output) |
|
71 | 72 | |
|
73 | class NbconvertRootHandler(IPythonHandler): | |
|
74 | SUPPORTED_METHODS = ('GET',) | |
|
75 | ||
|
76 | @web.authenticated | |
|
77 | @json_errors | |
|
78 | def get(self): | |
|
79 | res = {} | |
|
80 | for format, exporter in exporter_map.items(): | |
|
81 | res[format] = info = {} | |
|
82 | info['output_mimetype'] = exporter.output_mimetype | |
|
83 | ||
|
84 | self.finish(json.dumps(res)) | |
|
85 | ||
|
72 | 86 | #----------------------------------------------------------------------------- |
|
73 | 87 | # URL to handler mappings |
|
74 | 88 | #----------------------------------------------------------------------------- |
@@ -82,4 +96,5 b' default_handlers = [' | |||
|
82 | 96 | (r"/nbconvert/%s%s" % (_format_regex, _notebook_path_regex), |
|
83 | 97 | NbconvertFileHandler), |
|
84 | 98 | (r"/nbconvert/%s" % _format_regex, NbconvertPostHandler), |
|
99 | (r"/nbconvert", NbconvertRootHandler), | |
|
85 | 100 | ] No newline at end of file |
@@ -32,6 +32,9 b' class NbconvertAPI(object):' | |||
|
32 | 32 | body = json.dumps(nbmodel) |
|
33 | 33 | return self._req('POST', format, body) |
|
34 | 34 | |
|
35 | def list_formats(self): | |
|
36 | return self._req('GET', '') | |
|
37 | ||
|
35 | 38 | class APITest(NotebookTestBase): |
|
36 | 39 | def setUp(self): |
|
37 | 40 | nbdir = self.notebook_dir.name |
@@ -91,4 +94,11 b' class APITest(NotebookTestBase):' | |||
|
91 | 94 | |
|
92 | 95 | r = self.nbconvert_api.from_post(format='python', nbmodel=nbmodel) |
|
93 | 96 | self.assertIn(u'text/x-python', r.headers['Content-Type']) |
|
94 | self.assertIn(u'print(2*6)', r.text) No newline at end of file | |
|
97 | self.assertIn(u'print(2*6)', r.text) | |
|
98 | ||
|
99 | def test_list_formats(self): | |
|
100 | formats = self.nbconvert_api.list_formats().json() | |
|
101 | self.assertIsInstance(formats, dict) | |
|
102 | self.assertIn('python', formats) | |
|
103 | self.assertIn('html', formats) | |
|
104 | self.assertEqual(formats['python']['output_mimetype'], 'text/x-python') No newline at end of file |
General Comments 0
You need to be logged in to leave comments.
Login now