##// END OF EJS Templates
Add test for and fix REST save with rename
Thomas Kluyver -
Show More
@@ -254,7 +254,7 b' class FileNotebookManager(NotebookManager):'
254 254 except Exception as e:
255 255 raise web.HTTPError(400, u'Unexpected error while saving notebook as script: %s %s' % (py_path, e))
256 256
257 model = self.get_notebook_model(name, path, content=False)
257 model = self.get_notebook_model(new_name, new_path, content=False)
258 258 return model
259 259
260 260 def update_notebook_model(self, model, name, path=''):
@@ -115,6 +115,14 b' class APITest(NotebookTestBase):'
115 115 self.assertEqual(nbnames, {'a.ipynb', 'b.ipynb',
116 116 'name with spaces.ipynb', u'unicodé.ipynb'})
117 117
118 def assert_404(self, name, path):
119 try:
120 self.nb_api.read(name, path)
121 except requests.HTTPError as e:
122 self.assertEqual(e.response.status_code, 404)
123 else:
124 assert False, "Reading a non-existent notebook should fail"
125
118 126 def test_get_contents(self):
119 127 for d, name in self.dirs_nbs:
120 128 nb = self.nb_api.read('%s.ipynb' % name, d+'/').json()
@@ -124,12 +132,7 b' class APITest(NotebookTestBase):'
124 132 self.assertIsInstance(nb['content']['metadata'], dict)
125 133
126 134 # Name that doesn't exist - should be a 404
127 try:
128 self.nb_api.read('q.ipynb', 'foo')
129 except requests.HTTPError as e:
130 self.assertEqual(e.response.status_code, 404)
131 else:
132 assert False, "Reading a non-existent notebook should fail"
135 self.assert_404('q.ipynb', 'foo')
133 136
134 137 def _check_nb_created(self, resp, name, path):
135 138 self.assertEqual(resp.status_code, 201)
@@ -198,3 +201,13 b' class APITest(NotebookTestBase):'
198 201 newnb = read(f, format='ipynb')
199 202 self.assertEqual(newnb.worksheets[0].cells[0].source,
200 203 'Created by test')
204
205 # Save and rename
206 nbmodel= {'name': 'a2.ipynb', 'path':'foo/bar', 'content': nb}
207 resp = self.nb_api.save('a.ipynb', path='foo', body=jsonapi.dumps(nbmodel))
208 saved = resp.json()
209 self.assertEqual(saved['name'], 'a2.ipynb')
210 self.assertEqual(saved['path'], 'foo/bar')
211 assert os.path.isfile(pjoin(self.notebook_dir.name,'foo','bar','a2.ipynb'))
212 assert not os.path.isfile(pjoin(self.notebook_dir.name, 'foo', 'a.ipynb'))
213 self.assert_404('a.ipynb', 'foo') No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now