Show More
@@ -2,6 +2,7 b'' | |||||
2 | """Test the contents webservice API.""" |
|
2 | """Test the contents webservice API.""" | |
3 |
|
3 | |||
4 | import base64 |
|
4 | import base64 | |
|
5 | from contextlib import contextmanager | |||
5 | import io |
|
6 | import io | |
6 | import json |
|
7 | import json | |
7 | import os |
|
8 | import os | |
@@ -21,6 +22,7 b' from IPython.nbformat.v4 import (' | |||||
21 | from IPython.nbformat import v2 |
|
22 | from IPython.nbformat import v2 | |
22 | from IPython.utils import py3compat |
|
23 | from IPython.utils import py3compat | |
23 | from IPython.utils.data import uniq_stable |
|
24 | from IPython.utils.data import uniq_stable | |
|
25 | from IPython.utils.tempdir import TemporaryDirectory | |||
24 |
|
26 | |||
25 |
|
27 | |||
26 | def notebooks_only(dir_model): |
|
28 | def notebooks_only(dir_model): | |
@@ -502,7 +504,6 b' class APITest(NotebookTestBase):' | |||||
502 | self.assertEqual(newnb.cells[0].source, |
|
504 | self.assertEqual(newnb.cells[0].source, | |
503 | u'Created by test Β³') |
|
505 | u'Created by test Β³') | |
504 |
|
506 | |||
505 |
|
||||
506 | def test_checkpoints(self): |
|
507 | def test_checkpoints(self): | |
507 | resp = self.api.read('foo/a.ipynb') |
|
508 | resp = self.api.read('foo/a.ipynb') | |
508 | r = self.api.new_checkpoint('foo/a.ipynb') |
|
509 | r = self.api.new_checkpoint('foo/a.ipynb') | |
@@ -540,3 +541,28 b' class APITest(NotebookTestBase):' | |||||
540 | self.assertEqual(r.status_code, 204) |
|
541 | self.assertEqual(r.status_code, 204) | |
541 | cps = self.api.get_checkpoints('foo/a.ipynb').json() |
|
542 | cps = self.api.get_checkpoints('foo/a.ipynb').json() | |
542 | self.assertEqual(cps, []) |
|
543 | self.assertEqual(cps, []) | |
|
544 | ||||
|
545 | @contextmanager | |||
|
546 | def patch_cp_root(self, dirname): | |||
|
547 | """ | |||
|
548 | Temporarily patch the root dir of our checkpoint manager. | |||
|
549 | """ | |||
|
550 | cpm = self.notebook.contents_manager.checkpoint_manager | |||
|
551 | old_dirname = cpm.root_dir | |||
|
552 | cpm.root_dir = dirname | |||
|
553 | try: | |||
|
554 | yield | |||
|
555 | finally: | |||
|
556 | cpm.root_dir = old_dirname | |||
|
557 | ||||
|
558 | def test_checkpoints_separate_root(self): | |||
|
559 | """ | |||
|
560 | Test that FileCheckpointManager functions correctly even when it's | |||
|
561 | using a different root dir from FileContentsManager. This also keeps | |||
|
562 | the implementation honest for use with ContentsManagers that don't map | |||
|
563 | models to the filesystem | |||
|
564 | """ | |||
|
565 | ||||
|
566 | with TemporaryDirectory() as td: | |||
|
567 | with self.patch_cp_root(td): | |||
|
568 | self.test_checkpoints() |
General Comments 0
You need to be logged in to leave comments.
Login now