test_tree_handler.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. """Test the /tree handlers"""
  2. import os
  3. import io
  4. from notebook.utils import url_path_join
  5. from nbformat import write
  6. from nbformat.v4 import new_notebook
  7. try:
  8. from urllib.parse import urlparse
  9. except ImportError:
  10. from urlparse import urlparse
  11. import requests
  12. from notebook.tests.launchnotebook import NotebookTestBase
  13. class TreeTest(NotebookTestBase):
  14. def setUp(self):
  15. nbdir = self.notebook_dir
  16. d = os.path.join(nbdir, 'foo')
  17. os.mkdir(d)
  18. with io.open(os.path.join(d, 'bar.ipynb'), 'w', encoding='utf-8') as f:
  19. nb = new_notebook()
  20. write(nb, f, version=4)
  21. with io.open(os.path.join(d, 'baz.txt'), 'w', encoding='utf-8') as f:
  22. f.write(u'flamingo')
  23. self.base_url()
  24. def test_redirect(self):
  25. r = self.request('GET', 'tree/foo/bar.ipynb')
  26. self.assertEqual(r.url, self.base_url() + 'notebooks/foo/bar.ipynb')
  27. r = self.request('GET', 'tree/foo/baz.txt', allow_redirects=False)
  28. self.assertEqual(r.status_code, 302)
  29. self.assertEqual(r.headers['Location'],
  30. urlparse(url_path_join(self.base_url(), 'files/foo/baz.txt')).path)