Skip to content

Commit e3f1572

Browse files
committed
Fix test to run with a real ycell
1 parent 70c58e6 commit e3f1572

File tree

1 file changed

+35
-9
lines changed

1 file changed

+35
-9
lines changed

jupyter_server_nbmodel/tests/test_handlers.py

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,22 @@ async def _(kernel_id, ready=None):
7474
return _
7575

7676

77+
@pytest.fixture()
78+
def rtc_test_notebook(jp_serverapp, rtc_create_notebook):
79+
async def _(notebook, path="test.ipynb"):
80+
nb_content = nbformat.writes(notebook, version=4)
81+
returned_path, _ = await rtc_create_notebook(path, nb_content, store=True)
82+
assert path == returned_path
83+
document_id = get_document_id(jp_serverapp, "test.ipynb")
84+
return document_id
85+
86+
87+
def get_document_id(jp_serverapp, notebook_name):
88+
fim = jp_serverapp.web_app.settings["file_id_manager"]
89+
document_id = f'json:notebook:{fim.get_id(notebook_name)}'
90+
return document_id
91+
92+
7793
@pytest.mark.timeout(2 * TEST_TIMEOUT)
7894
@pytest.mark.parametrize(
7995
"snippet,output",
@@ -92,26 +108,38 @@ async def _(kernel_id, ready=None):
92108
"display('a'); print('b')",
93109
(
94110
'{"output_type": "display_data", "metadata": {}, "data": {"text/plain": "\'a\'"}}'
95-
', {"output_type": "stream", "name": "stdout", "text": "b\\n"}'
111+
', {"output_type": "stream", "name": "stdout", "text": ["b"]}'
96112
)
97113
)
98114
),
99115
)
100-
async def test_post_execute(jp_fetch, pending_kernel_is_ready, snippet, output):
116+
async def test_post_execute(jp_fetch, pending_kernel_is_ready, snippet, output, rtc_test_notebook):
101117
r = await jp_fetch(
102118
"api", "kernels", method="POST", body=json.dumps({"name": NATIVE_KERNEL_NAME})
103119
)
104120
kernel = json.loads(r.body.decode())
105121
await pending_kernel_is_ready(kernel["id"])
106122

123+
nb = nbformat.v4.new_notebook(
124+
cells=[nbformat.v4.new_code_cell(source=snippet)]
125+
)
126+
document_id = await rtc_test_notebook(nb)
127+
cell_id = nb["cells"][0]["id"]
128+
107129
response = await wait_for_request(
108130
jp_fetch,
109131
"api",
110132
"kernels",
111133
kernel["id"],
112134
"execute",
113135
method="POST",
114-
body=json.dumps({"code": snippet}),
136+
body=json.dumps({
137+
"code": snippet,
138+
"metadata": {
139+
"cell_id": cell_id,
140+
"document_id": document_id
141+
}
142+
}),
115143
)
116144

117145
assert response.code == 200
@@ -230,17 +258,15 @@ async def fake_execute(client, ydoc, snippet, metadata, stdin_hook):
230258

231259

232260
@pytest.mark.timeout(TEST_TIMEOUT)
233-
async def test_execution_timing_metadata(jp_root_dir, jp_fetch, pending_kernel_is_ready, rtc_create_notebook, jp_serverapp):
261+
async def test_execution_timing_metadata(jp_root_dir, jp_fetch, pending_kernel_is_ready, rtc_test_notebook, jp_serverapp):
234262
snippet = "a = 1"
235263
nb = nbformat.v4.new_notebook(
236264
cells=[nbformat.v4.new_code_cell(source=snippet, execution_count=1)]
237265
)
238-
nb_content = nbformat.writes(nb, version=4)
239-
path, _ = await rtc_create_notebook("test.ipynb", nb_content, store=True)
266+
path = "test.ipynb"
267+
document_id = await rtc_test_notebook(path="test.ipynb")
240268
collaboration = jp_serverapp.web_app.settings["jupyter_server_ydoc"]
241-
fim = jp_serverapp.web_app.settings["file_id_manager"]
242-
document_id = f'json:notebook:{fim.get_id("test.ipynb")}'
243-
cell_id = nb["cells"][0].get("id")
269+
cell_id = nb["cells"][0]["id"]
244270

245271
r = await jp_fetch(
246272
"api", "kernels", method="POST", body=json.dumps({"name": NATIVE_KERNEL_NAME})

0 commit comments

Comments
 (0)