Skip to content

Commit 9963676

Browse files
Skip saving non-writable files (#457)
* skip-saving-unwritable-files * fix-test * pre-commit fix * Update projects/jupyter-server-ydoc/jupyter_server_ydoc/loaders.py --------- Co-authored-by: David Brochart <[email protected]>
1 parent bb0e1fb commit 9963676

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

projects/jupyter-server-ydoc/jupyter_server_ydoc/loaders.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,9 @@ async def maybe_save_content(self, model: dict[str, Any]) -> dict[str, Any] | No
153153
path, format=model["format"], type=model["type"], content=False
154154
)
155155
)
156+
# Skip saving if file is not writable
157+
if not m["writable"]:
158+
return None
156159

157160
if self.last_modified == m["last_modified"]:
158161
self._log.info("Saving file: %s", path)

projects/jupyter-server-ydoc/jupyter_server_ydoc/pytest_plugin.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,13 +271,16 @@ def _inner(
271271
last_modified: datetime | None = None,
272272
save_delay: float | None = None,
273273
store: SQLiteYStore | None = None,
274+
writable: bool = False,
274275
) -> tuple[FakeContentsManager, FileLoader, DocumentRoom]:
275276
paths = {id: path}
276277

277278
if last_modified is None:
278-
cm = FakeContentsManager({"content": content})
279+
cm = FakeContentsManager({"content": content, "writable": writable})
279280
else:
280-
cm = FakeContentsManager({"last_modified": datetime.now(), "content": content})
281+
cm = FakeContentsManager(
282+
{"last_modified": datetime.now(), "content": content, "writable": writable}
283+
)
281284

282285
loader = FileLoader(
283286
id,

tests/test_rooms.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ async def test_defined_save_delay_should_save_content_after_document_change(
5151
rtc_create_mock_document_room,
5252
):
5353
content = "test"
54-
cm, _, room = rtc_create_mock_document_room("test-id", "test.txt", content, save_delay=0.01)
54+
cm, _, room = rtc_create_mock_document_room(
55+
"test-id", "test.txt", content, save_delay=0.01, writable=True
56+
)
5557

5658
await room.initialize()
5759
room._document.source = "Test 2"

0 commit comments

Comments
 (0)