##// END OF EJS Templates
review fixes on tests, add extra kernel api test
review fixes on tests, add extra kernel api test

File last commit:

r13034:69ca7411
r13045:cc15133f
Show More
test_nbmanager.py
111 lines | 4.3 KiB | text/x-python | PythonLexer
MinRK
add tests for notebook_dir validation
r7637 """Tests for the notebook manager."""
import os
from unittest import TestCase
from tempfile import NamedTemporaryFile
from IPython.utils.tempdir import TemporaryDirectory
from IPython.utils.traitlets import TraitError
Brian E. Granger
Fixing minor import error.
r10661 from ..filenbmanager import FileNotebookManager
Paul Ivanov
adding tests for named_notebook_path...
r13025 from ..nbmanager import NotebookManager
MinRK
add tests for notebook_dir validation
r7637
Paul Ivanov
adding tests for named_notebook_path...
r13025 class TestFileNotebookManager(TestCase):
MinRK
add tests for notebook_dir validation
r7637
def test_nb_dir(self):
with TemporaryDirectory() as td:
Paul Ivanov
clean up of get_os_path and its tests...
r13034 fm = FileNotebookManager(notebook_dir=td)
self.assertEqual(fm.notebook_dir, td)
MinRK
add tests for notebook_dir validation
r7637
def test_create_nb_dir(self):
with TemporaryDirectory() as td:
nbdir = os.path.join(td, 'notebooks')
Paul Ivanov
clean up of get_os_path and its tests...
r13034 fm = FileNotebookManager(notebook_dir=nbdir)
self.assertEqual(fm.notebook_dir, nbdir)
MinRK
add tests for notebook_dir validation
r7637
def test_missing_nb_dir(self):
with TemporaryDirectory() as td:
nbdir = os.path.join(td, 'notebook', 'dir', 'is', 'missing')
Brian Granger
Refactoring notebook managers and adding Azure backed storage....
r8180 self.assertRaises(TraitError, FileNotebookManager, notebook_dir=nbdir)
MinRK
add tests for notebook_dir validation
r7637
def test_invalid_nb_dir(self):
with NamedTemporaryFile() as tf:
Brian Granger
Refactoring notebook managers and adding Azure backed storage....
r8180 self.assertRaises(TraitError, FileNotebookManager, notebook_dir=tf.name)
MinRK
add tests for notebook_dir validation
r7637
Zachary Sailer
handle path separators with os.sep and add tests...
r13032 def test_get_os_path(self):
# full filesystem path should be returned with correct operating system
# separators.
with TemporaryDirectory() as td:
nbdir = os.path.join(td, 'notebooks')
Paul Ivanov
clean up of get_os_path and its tests...
r13034 fm = FileNotebookManager(notebook_dir=nbdir)
path = fm.get_os_path('test.ipynb', '/path/to/notebook/')
rel_path_list = '/path/to/notebook/test.ipynb'.split('/')
fs_path = os.path.join(fm.notebook_dir, *rel_path_list)
self.assertEqual(path, fs_path)
fm = FileNotebookManager(notebook_dir=nbdir)
path = fm.get_os_path('test.ipynb')
fs_path = os.path.join(fm.notebook_dir, 'test.ipynb')
self.assertEqual(path, fs_path)
fm = FileNotebookManager(notebook_dir=nbdir)
path = fm.get_os_path('test.ipynb', '////')
fs_path = os.path.join(fm.notebook_dir, 'test.ipynb')
self.assertEqual(path, fs_path)
Zachary Sailer
handle path separators with os.sep and add tests...
r13032
Paul Ivanov
adding tests for named_notebook_path...
r13025 class TestNotebookManager(TestCase):
def test_named_notebook_path(self):
nm = NotebookManager()
Zachary Sailer
url encode/decode tests added to nbmanager
r13031
Paul Ivanov
adding tests for named_notebook_path...
r13025 # doesn't end with ipynb, should just be path
name, path = nm.named_notebook_path('hello')
self.assertEqual(name, None)
Paul Ivanov
more named_notebook_path cleanup...
r13028 self.assertEqual(path, '/hello/')
Zachary Sailer
url encode/decode tests added to nbmanager
r13031
Paul Ivanov
simplified named_notebook_path implementation...
r13027 name, path = nm.named_notebook_path('/')
self.assertEqual(name, None)
Paul Ivanov
more named_notebook_path cleanup...
r13028 self.assertEqual(path, '/')
Paul Ivanov
adding tests for named_notebook_path...
r13025
name, path = nm.named_notebook_path('hello.ipynb')
self.assertEqual(name, 'hello.ipynb')
Paul Ivanov
simplified named_notebook_path implementation...
r13027 self.assertEqual(path, '/')
Zachary Sailer
url encode/decode tests added to nbmanager
r13031
Paul Ivanov
simplified named_notebook_path implementation...
r13027 name, path = nm.named_notebook_path('/hello.ipynb')
self.assertEqual(name, 'hello.ipynb')
self.assertEqual(path, '/')
Zachary Sailer
url encode/decode tests added to nbmanager
r13031
Paul Ivanov
adding tests for named_notebook_path...
r13025 name, path = nm.named_notebook_path('/this/is/a/path/hello.ipynb')
self.assertEqual(name, 'hello.ipynb')
self.assertEqual(path, '/this/is/a/path/')
Zachary Sailer
url encode/decode tests added to nbmanager
r13031
Paul Ivanov
more named_notebook_path cleanup...
r13028 name, path = nm.named_notebook_path('path/without/leading/slash/hello.ipynb')
self.assertEqual(name, 'hello.ipynb')
self.assertEqual(path, '/path/without/leading/slash/')
Paul Ivanov
adding tests for named_notebook_path...
r13025
Zachary Sailer
url encode/decode tests added to nbmanager
r13031 def test_url_encode(self):
nm = NotebookManager()
# changes path or notebook name with special characters to url encoding
# these tests specifically encode paths with spaces
path = nm.url_encode('/this is a test/for spaces/')
self.assertEqual(path, '/this%20is%20a%20test/for%20spaces/')
path = nm.url_encode('notebook with space.ipynb')
self.assertEqual(path, 'notebook%20with%20space.ipynb')
path = nm.url_encode('/path with a/notebook and space.ipynb')
self.assertEqual(path, '/path%20with%20a/notebook%20and%20space.ipynb')
MinRK
add tests for notebook_dir validation
r7637
Zachary Sailer
url encode/decode tests added to nbmanager
r13031 def test_url_decode(self):
nm = NotebookManager()
# decodes a url string to a plain string
# these tests decode paths with spaces
path = nm.url_decode('/this%20is%20a%20test/for%20spaces/')
self.assertEqual(path, '/this is a test/for spaces/')
path = nm.url_decode('notebook%20with%20space.ipynb')
self.assertEqual(path, 'notebook with space.ipynb')
path = nm.url_decode('/path%20with%20a/notebook%20and%20space.ipynb')
self.assertEqual(path, '/path with a/notebook and space.ipynb')