From 2bee5e5abcdeb825dde0aeba7d7d8d5f11e43e92 2014-07-31 18:57:37 From: MinRK Date: 2014-07-31 18:57:37 Subject: [PATCH] test creating a directory with PUT --- diff --git a/IPython/html/services/contents/tests/test_contents_api.py b/IPython/html/services/contents/tests/test_contents_api.py index d0e3e20..4c73075 100644 --- a/IPython/html/services/contents/tests/test_contents_api.py +++ b/IPython/html/services/contents/tests/test_contents_api.py @@ -247,12 +247,16 @@ class APITest(NotebookTestBase): with assert_http_error(404): self.api.read('q.txt', 'foo') - def _check_nb_created(self, resp, name, path): + def _check_created(self, resp, name, path, type='notebook'): self.assertEqual(resp.status_code, 201) location_header = py3compat.str_to_unicode(resp.headers['Location']) self.assertEqual(location_header, url_escape(url_path_join(u'/api/contents', path, name))) - self.assertEqual(resp.json()['name'], name) - assert os.path.isfile(pjoin( + rjson = resp.json() + self.assertEqual(rjson['name'], name) + self.assertEqual(rjson['path'], path) + self.assertEqual(rjson['type'], type) + isright = os.path.isdir if type == 'directory' else os.path.isfile + assert isright(pjoin( self.notebook_dir.name, path.replace('/', os.sep), name, @@ -260,19 +264,19 @@ class APITest(NotebookTestBase): def test_create_untitled(self): resp = self.api.create_untitled(path=u'å b') - self._check_nb_created(resp, 'Untitled0.ipynb', u'å b') + self._check_created(resp, 'Untitled0.ipynb', u'å b') # Second time resp = self.api.create_untitled(path=u'å b') - self._check_nb_created(resp, 'Untitled1.ipynb', u'å b') + self._check_created(resp, 'Untitled1.ipynb', u'å b') # And two directories down resp = self.api.create_untitled(path='foo/bar') - self._check_nb_created(resp, 'Untitled0.ipynb', 'foo/bar') + self._check_created(resp, 'Untitled0.ipynb', 'foo/bar') def test_create_untitled_txt(self): resp = self.api.create_untitled(path='foo/bar', ext='.txt') - self._check_nb_created(resp, 'Untitled0.txt', 'foo/bar') + self._check_created(resp, 'Untitled0.txt', 'foo/bar', type='file') resp = self.api.read(path='foo/bar', name='Untitled0.txt') model = resp.json() @@ -285,14 +289,20 @@ class APITest(NotebookTestBase): nbmodel = {'content': nb, 'type': 'notebook'} resp = self.api.upload_untitled(path=u'å b', body=json.dumps(nbmodel)) - self._check_nb_created(resp, 'Untitled0.ipynb', u'å b') + self._check_created(resp, 'Untitled0.ipynb', u'å b') def test_upload(self): nb = new_notebook(name=u'ignored') nbmodel = {'content': nb, 'type': 'notebook'} resp = self.api.upload(u'Upload tést.ipynb', path=u'å b', body=json.dumps(nbmodel)) - self._check_nb_created(resp, u'Upload tést.ipynb', u'å b') + self._check_created(resp, u'Upload tést.ipynb', u'å b') + + def test_mkdir(self): + model = {'type': 'directory'} + resp = self.api.upload(u'New ∂ir', path=u'å b', + body=json.dumps(model)) + self._check_created(resp, u'New ∂ir', u'å b', type='directory') def test_upload_txt(self): body = u'ünicode téxt' @@ -338,7 +348,7 @@ class APITest(NotebookTestBase): nbmodel = {'content': nb, 'type': 'notebook'} resp = self.api.upload(u'Upload tést.ipynb', path=u'å b', body=json.dumps(nbmodel)) - self._check_nb_created(resp, u'Upload tést.ipynb', u'å b') + self._check_created(resp, u'Upload tést.ipynb', u'å b') resp = self.api.read(u'Upload tést.ipynb', u'å b') data = resp.json() self.assertEqual(data['content']['nbformat'], current.nbformat) @@ -346,11 +356,11 @@ class APITest(NotebookTestBase): def test_copy_untitled(self): resp = self.api.copy_untitled(u'ç d.ipynb', path=u'å b') - self._check_nb_created(resp, u'ç d-Copy0.ipynb', u'å b') + self._check_created(resp, u'ç d-Copy0.ipynb', u'å b') def test_copy(self): resp = self.api.copy(u'ç d.ipynb', u'cøpy.ipynb', path=u'å b') - self._check_nb_created(resp, u'cøpy.ipynb', u'å b') + self._check_created(resp, u'cøpy.ipynb', u'å b') def test_delete(self): for d, name in self.dirs_nbs: