Added base class for Notebook API tests.

This commit is contained in:
Brian E. Granger 2013-08-20 21:43:40 -07:00 committed by MinRK
parent 483d16c8ed
commit 136a19e5eb
2 changed files with 63 additions and 0 deletions

View File

@ -0,0 +1,23 @@
"""Test the kernels service API."""
import os
import sys
import json
import requests
from IPython.html.tests.launchnotebook import NotebookTestBase
class KernelAPITest(NotebookTestBase):
"""Test the kernels web service API"""
def base_url(self):
return super(KernelAPITest,self).base_url() + 'api/kernels'
def test_no_kernels(self):
"""Make sure there are no kernels running at the start"""
url = self.base_url()
r = requests.get(url)
assert r.json() == []

View File

@ -0,0 +1,40 @@
"""Base class for notebook tests."""
import sys
import time
from subprocess import Popen, PIPE
from unittest import TestCase
from IPython.utils.tempdir import TemporaryDirectory
class NotebookTestBase(TestCase):
"""A base class for tests that need a running notebook.
This creates an empty profile in a temp ipython_dir
and then starts the notebook server with a separate temp notebook_dir.
"""
port = 12342
def setUp(self):
self.ipython_dir = TemporaryDirectory()
self.notebook_dir = TemporaryDirectory()
notebook_args = [
sys.executable, '-c',
'from IPython.html.notebookapp import launch_new_instance; launch_new_instance()',
'--port=%d' % self.port,
'--no-browser',
'--ipython-dir=%s' % self.ipython_dir.name,
'--notebook-dir=%s' % self.notebook_dir.name
]
self.notebook = Popen(notebook_args, stdout=PIPE, stderr=PIPE)
time.sleep(3.0)
def tearDown(self):
self.notebook.terminate()
self.ipython_dir.cleanup()
self.notebook_dir.cleanup()
def base_url(self):
return 'http://localhost:%i/' % self.port