|
|
import requests
|
|
|
|
|
|
from IPython.html.utils import url_path_join
|
|
|
from IPython.html.tests.launchnotebook import NotebookTestBase
|
|
|
|
|
|
class NbconvertAPI(object):
|
|
|
"""Wrapper for nbconvert API calls."""
|
|
|
def __init__(self, base_url):
|
|
|
self.base_url = base_url
|
|
|
|
|
|
def _req(self, verb, path, body=None, params=None):
|
|
|
response = requests.request(verb,
|
|
|
url_path_join(self.base_url, 'api/nbconvert', path),
|
|
|
data=body, params=params,
|
|
|
)
|
|
|
response.raise_for_status()
|
|
|
return response
|
|
|
|
|
|
def list_formats(self):
|
|
|
return self._req('GET', '')
|
|
|
|
|
|
class APITest(NotebookTestBase):
|
|
|
def setUp(self):
|
|
|
self.nbconvert_api = NbconvertAPI(self.base_url())
|
|
|
|
|
|
def test_list_formats(self):
|
|
|
formats = self.nbconvert_api.list_formats().json()
|
|
|
self.assertIsInstance(formats, dict)
|
|
|
self.assertIn('python', formats)
|
|
|
self.assertIn('html', formats)
|
|
|
self.assertEqual(formats['python']['output_mimetype'], 'text/x-python')
|