New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
No tests for notebooks, fixture does not work when store = True
#274
Comments
It looks like the jupyter-collaboration/tests/conftest.py Lines 152 to 168 in 7898b25
Removing
def observe(self, callback: Callable[[str, Any], None]) -> None:
"""
Subscribes to document changes.
:param callback: Callback that will be called when the document changes.
:type callback: Callable[[str, Any], None]
"""
self.unobserve()
self._subscriptions[self._ystate] = self._ystate.observe(partial(callback, "state"))
self._subscriptions[self._ymeta] = self._ymeta.observe_deep(partial(callback, "meta"))
self._subscriptions[self._ycells] = self._ycells.observe_deep(partial(callback, "cells")) I am not familiar with the lower-level codebase enough to debug this further easily. Any thoughts? |
I didn't write these fixtures, so I'm also not very familiar with them. |
This shows that observing notebook changes works as expected: from jupyter_ydoc import YNotebook
ynb = YNotebook()
def callback(target, events):
print(f"{target=}")
for event in events:
print(f"{str(event)=}")
ynb.observe(callback)
ynb.set(
{
"cells": [],
}
)
# target='cells'
# str(event)='{target: [{"execution_count":null,"metadata":{"trusted":true},"source":"","id":"c6506805-eec8-496d-9ec1-28d7239bf0b8","cell_type":"code","outputs":[]}], delta: [{\'insert\': [<pycrdt._map.Map object at 0x7f9a0c5d84a0>]}], path: []}'
# target='meta'
# str(event)='{target: {"metadata":{"language_info":{"name":""},"kernelspec":{"name":"","display_name":""}},"nbformat":4.0,"nbformat_minor":5.0}, keys: {\'metadata\': {\'action\': \'add\', \'newValue\': <pycrdt._map.Map object at 0x7f9a0c5d92b0>}, \'nbformat_minor\': {\'action\': \'add\', \'newValue\': 5.0}, \'nbformat\': {\'action\': \'add\', \'newValue\': 4.0}}, path: []}' |
I think the problem is not that observing does not work when a change is made via |
Description
Heads up to anyone trying to improve test coverage:
I tried to write tests for #270 using
rtc_create_notebook
andrtc_create_file
fixtures. While I was successful withrtc_create_file
, tests withrtc_create_notebook
appear to stall if usingstore=True
.I also noticed that this fixture is not used, not even once in the tests. It looks like it needs some attention.
jupyter-collaboration/tests/conftest.py
Lines 78 to 110 in 7898b25
It stalls on line 106:
The text was updated successfully, but these errors were encountered: