url encode/decode tests added to nbmanager

Zachary Sailer 13 years ago committed by MinRK
parent f42de98c5b
commit bdbe30dc3a

@ -86,11 +86,11 @@ class FileNotebookManager(NotebookManager):
def list_notebooks(self, path):
"""List all notebooks in the notebook dir."""
notebook_names = self.get_notebook_names(path)
notebook_mapping = []
notebooks = []
for name in notebook_names:
model = self.notebook_model(name, path, content=False)
notebook_mapping.append(model)
return notebook_mapping
notebooks.append(model)
return notebooks
def change_notebook(self, data, notebook_name, notebook_path=None):
"""Changes notebook"""

@ -73,11 +73,13 @@ class NotebookManager(LoggingConfigurable):
return name, path
def url_encode(self, path):
parts = path.split('/')
parts = os.path.split(path)
#parts = path.split('/')
return os.path.join(*[quote(p) for p in parts])
def url_decode(self, path):
parts = path.split('/')
parts = os.path.split(path)
#parts = path.split('/')
return os.path.join(*[unquote(p) for p in parts])
def _notebook_dir_changed(self, new):
@ -127,11 +129,6 @@ class NotebookManager(LoggingConfigurable):
"""
raise NotImplementedError('must be implemented in a subclass')
def notebook_exists(self, notebook_path):
"""Does a notebook exist?"""
def notebook_model(self, notebook_name, notebook_path=None, content=True):
""" Creates the standard notebook model """
last_modified, contents = self.read_notebook_object(notebook_name, notebook_path)

@ -35,12 +35,12 @@ class TestFileNotebookManager(TestCase):
class TestNotebookManager(TestCase):
def test_named_notebook_path(self):
nm = NotebookManager()
# doesn't end with ipynb, should just be path
name, path = nm.named_notebook_path('hello')
self.assertEqual(name, None)
self.assertEqual(path, '/hello/')
name, path = nm.named_notebook_path('/')
self.assertEqual(name, None)
self.assertEqual(path, '/')
@ -48,17 +48,43 @@ class TestNotebookManager(TestCase):
name, path = nm.named_notebook_path('hello.ipynb')
self.assertEqual(name, 'hello.ipynb')
self.assertEqual(path, '/')
name, path = nm.named_notebook_path('/hello.ipynb')
self.assertEqual(name, 'hello.ipynb')
self.assertEqual(path, '/')
name, path = nm.named_notebook_path('/this/is/a/path/hello.ipynb')
self.assertEqual(name, 'hello.ipynb')
self.assertEqual(path, '/this/is/a/path/')
name, path = nm.named_notebook_path('path/without/leading/slash/hello.ipynb')
self.assertEqual(name, 'hello.ipynb')
self.assertEqual(path, '/path/without/leading/slash/')
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')
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')

Loading…
Cancel
Save