Here are the examples of the python api bokeh.document.events.ModelChangedEvent taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
18 Examples
3
Source : test_events.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_init_defaults(self):
e = bde.ModelChangedEvent("doc", "model", "attr", "old", "new", "snew")
assert e.document == "doc"
assert e.setter == None
assert e.callback_invoker == None
assert e.model == "model"
assert e.attr == "attr"
assert e.old == "old"
assert e.new == "new"
assert e.serializable_new == "snew"
assert e.hint == None
assert e.callback_invoker == None
def test_init_ignores_hint_with_setter(self):
3
Source : test_events.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_init_ignores_hint_with_setter(self):
e = bde.ModelChangedEvent("doc", "model", "attr", "old", "new", "snew", setter="setter", hint="hint", callback_invoker="invoker")
assert e.document == "doc"
assert e.setter == "setter"
assert e.callback_invoker == "invoker"
assert e.model == "model"
assert e.attr == "attr"
assert e.old == "old"
assert e.new == "new"
assert e.serializable_new == "snew"
assert e.hint == "hint"
assert e.callback_invoker == "invoker"
def test_init_uses_hint_with_no_setter(self):
3
Source : test_events.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_init_uses_hint_with_no_setter(self):
e = bde.ModelChangedEvent("doc", "model", "attr", "old", "new", "snew", hint="hint", callback_invoker="invoker")
assert e.document == "doc"
assert e.setter == None
assert e.callback_invoker == "invoker"
assert e.model == "model"
assert e.attr == "attr"
assert e.old == "old"
assert e.new == "new"
assert e.serializable_new == "snew"
assert e.hint == "hint"
assert e.callback_invoker == "invoker"
# TODO (bev) tests for generate
def test_dispatch(self):
3
Source : test_events.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_dispatch(self):
e = bde.ModelChangedEvent("doc", "model", "attr", "old", "new", "snew")
e.dispatch(FakeEmptyDispatcher())
d = FakeFullDispatcher()
e.dispatch(d)
assert d.called == ['_document_changed', '_document_patched', '_document_model_changed']
def test_combine_ignores_except_title_changd_event(self):
3
Source : test_events.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_combine_ignores_except_title_changd_event(self):
e = bde.ModelChangedEvent("doc", "model", "attr", "old", "new", "snew")
e2 = bde.DocumentPatchedEvent("doc", "setter", "invoker")
assert e.combine(e2) == False
def test_combine_ignores_different_setter(self):
3
Source : test_events.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_combine_ignores_different_setter(self):
e = bde.ModelChangedEvent("doc", "model", "attr", "old", "new", "snew", None, "setter")
e2 = bde.ModelChangedEvent("doc", "model", "attr", "old2", "new2", "snew2", None, "setter2")
assert e.combine(e2) == False
def test_combine_ignores_different_doc(self):
3
Source : test_events.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_combine_ignores_different_doc(self):
e = bde.ModelChangedEvent("doc", "model", "attr", "old", "new", "snew")
e2 = bde.ModelChangedEvent("doc2", "model", "attr", "old2", "new2", "snew2")
assert e.combine(e2) == False
def test_combine_ignores_different_model(self):
3
Source : test_events.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_combine_ignores_different_model(self):
e = bde.ModelChangedEvent("doc", "model", "attr", "old", "new", "snew")
e2 = bde.ModelChangedEvent("doc", "model2", "attr", "old2", "new2", "snew2")
assert e.combine(e2) == False
def test_combine_ignores_different_attr(self):
3
Source : test_events.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_combine_ignores_different_attr(self):
e = bde.ModelChangedEvent("doc", "model", "attr", "old", "new", "snew")
e2 = bde.ModelChangedEvent("doc", "model", "attr2", "old2", "new2", "snew2")
assert e.combine(e2) == False
def test_combine_with_matching_model_changed_event(self):
3
Source : test_events.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_combine_with_matching_model_changed_event(self):
e = bde.ModelChangedEvent("doc", "model", "attr", "old", "new", "snew", callback_invoker="invoker")
e2 = bde.ModelChangedEvent("doc", "model", "attr", "old2", "new2", "snew2", callback_invoker="invoker2")
assert e.combine(e2) == True
assert e.old == "old" # keeps original old value
assert e.new == "new2"
assert e.serializable_new == "snew2"
assert e.callback_invoker == "invoker2"
@patch("bokeh.document.events.ColumnsStreamedEvent.combine")
3
Source : test_patch_doc.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_create_multiple_docs(self):
sample1 = self._sample_doc()
obj1 = next(iter(sample1.roots))
event1 = ModelChangedEvent(sample1, obj1, 'foo', obj1.foo, 42, 42)
sample2 = self._sample_doc()
obj2 = next(iter(sample2.roots))
event2 = ModelChangedEvent(sample2, obj2, 'foo', obj2.foo, 42, 42)
with pytest.raises(ValueError):
Protocol("1.0").create("PATCH-DOC", [event1, event2])
def test_create_model_changed(self):
3
Source : test_patch_doc.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_create_model_changed(self):
sample = self._sample_doc()
obj = next(iter(sample.roots))
event = ModelChangedEvent(sample, obj, 'foo', obj.foo, 42, 42)
Protocol("1.0").create("PATCH-DOC", [event])
def test_create_then_apply_model_changed(self):
0
Source : test_document.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_patch_integer_property(self):
d = document.Document()
assert not d.roots
assert len(d._all_models) == 0
root1 = SomeModelInTestDocument(foo=42)
root2 = SomeModelInTestDocument(foo=43)
child1 = SomeModelInTestDocument(foo=44)
root1.child = child1
root2.child = child1
d.add_root(root1)
d.add_root(root2)
assert len(d.roots) == 2
event1 = ModelChangedEvent(d, root1, 'foo', root1.foo, 57, 57)
patch1, buffers = process_document_events([event1])
d.apply_json_patch_string(patch1)
assert root1.foo == 57
event2 = ModelChangedEvent(d, child1, 'foo', child1.foo, 67, 67)
patch2, buffers = process_document_events([event2])
d.apply_json_patch_string(patch2)
assert child1.foo == 67
def test_patch_spec_property(self):
0
Source : test_document.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_patch_spec_property(self):
d = document.Document()
assert not d.roots
assert len(d._all_models) == 0
root1 = ModelWithSpecInTestDocument(foo=42)
d.add_root(root1)
assert len(d.roots) == 1
def patch_test(new_value):
serializable_new = root1.lookup('foo').property.to_serializable(root1,
'foo',
new_value)
event1 = ModelChangedEvent(d, root1, 'foo', root1.foo, new_value, serializable_new)
patch1, buffers = process_document_events([event1])
d.apply_json_patch_string(patch1)
if isinstance(new_value, dict):
expected = copy(new_value)
if 'units' not in expected:
expected['units'] = root1.foo_units
assert expected == root1.lookup('foo').serializable_value(root1)
else:
assert new_value == root1.foo
patch_test(57)
assert 'data' == root1.foo_units
patch_test(dict(value=58))
assert 'data' == root1.foo_units
patch_test(dict(value=58, units='screen'))
assert 'screen' == root1.foo_units
patch_test(dict(value=59, units='screen'))
assert 'screen' == root1.foo_units
patch_test(dict(value=59, units='data'))
assert 'data' == root1.foo_units
patch_test(dict(value=60, units='data'))
assert 'data' == root1.foo_units
patch_test(dict(value=60, units='data'))
assert 'data' == root1.foo_units
patch_test(61)
assert 'data' == root1.foo_units
root1.foo = "a_string" # so "woot" gets set as a string
patch_test("woot")
assert 'data' == root1.foo_units
patch_test(dict(field="woot2"))
assert 'data' == root1.foo_units
patch_test(dict(field="woot2", units='screen'))
assert 'screen' == root1.foo_units
patch_test(dict(field="woot3"))
assert 'screen' == root1.foo_units
patch_test(dict(value=70))
assert 'screen' == root1.foo_units
root1.foo = 123 # so 71 gets set as a number
patch_test(71)
assert 'screen' == root1.foo_units
def test_patch_reference_property(self):
0
Source : test_document.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_patch_reference_property(self):
d = document.Document()
assert not d.roots
assert len(d._all_models) == 0
root1 = SomeModelInTestDocument(foo=42)
root2 = SomeModelInTestDocument(foo=43)
child1 = SomeModelInTestDocument(foo=44)
child2 = SomeModelInTestDocument(foo=45)
child3 = SomeModelInTestDocument(foo=46, child=child2)
root1.child = child1
root2.child = child1
d.add_root(root1)
d.add_root(root2)
assert len(d.roots) == 2
assert child1.id in d._all_models
assert child2.id not in d._all_models
assert child3.id not in d._all_models
event1 = ModelChangedEvent(d, root1, 'child', root1.child, child3, child3)
patch1, buffers = process_document_events([event1])
d.apply_json_patch_string(patch1)
assert root1.child.id == child3.id
assert root1.child.child.id == child2.id
assert child1.id in d._all_models
assert child2.id in d._all_models
assert child3.id in d._all_models
# put it back how it was before
event2 = ModelChangedEvent(d, root1, 'child', root1.child, child1, child1)
patch2, buffers = process_document_events([event2])
d.apply_json_patch_string(patch2)
assert root1.child.id == child1.id
assert root1.child.child is None
assert child1.id in d._all_models
assert child2.id not in d._all_models
assert child3.id not in d._all_models
def test_patch_two_properties_at_once(self):
0
Source : test_document.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_patch_two_properties_at_once(self):
d = document.Document()
assert not d.roots
assert len(d._all_models) == 0
root1 = SomeModelInTestDocument(foo=42)
child1 = SomeModelInTestDocument(foo=43)
root1.child = child1
d.add_root(root1)
assert len(d.roots) == 1
assert root1.child == child1
assert root1.foo == 42
assert root1.child.foo == 43
child2 = SomeModelInTestDocument(foo=44)
event1 = ModelChangedEvent(d, root1, 'foo', root1.foo, 57, 57)
event2 = ModelChangedEvent(d, root1, 'child', root1.child, child2, child2)
patch1, buffers = process_document_events([event1, event2])
d.apply_json_patch_string(patch1)
assert root1.foo == 57
assert root1.child.foo == 44
# a more realistic set of models instead of fake models
def test_scatter(self):
0
Source : test_patch_doc.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_create_then_apply_model_changed(self):
sample = self._sample_doc()
foos = []
for r in sample.roots:
foos.append(r.foo)
assert foos == [ 2, 2 ]
obj = next(iter(sample.roots))
assert obj.foo == 2
event = ModelChangedEvent(sample, obj, 'foo', obj.foo, 42, 42)
msg = Protocol("1.0").create("PATCH-DOC", [event])
copy = document.Document.from_json_string(sample.to_json_string())
msg.apply_to_document(copy)
foos = []
for r in copy.roots:
foos.append(r.foo)
foos.sort()
assert foos == [ 2, 42 ]
def test_patch_event_contains_setter(self):
0
Source : test_patch_doc.py
with MIT License
from rthorst
with MIT License
from rthorst
def test_patch_event_contains_setter(self):
sample = self._sample_doc()
root = None
other_root = None
for r in sample.roots:
if r.child is not None:
root = r
else:
other_root = r
assert root is not None
assert other_root is not None
new_child = AnotherModelInTestPatchDoc(bar=56)
cds = ColumnDataSource(data={'a': np.array([0., 1., 2.])})
sample.add_root(cds)
mock_session = object()
def sample_document_callback_assert(event):
"""Asserts that setter is correctly set on event"""
assert event.setter is mock_session
sample.on_change(sample_document_callback_assert)
# Model property changed
event = ModelChangedEvent(sample, root, 'child', root.child, new_child, new_child)
msg = Protocol("1.0").create("PATCH-DOC", [event])
msg.apply_to_document(sample, mock_session)
assert msg.buffers == []
# RootAdded
event2 = RootAddedEvent(sample, root)
msg2 = Protocol("1.0").create("PATCH-DOC", [event2])
msg2.apply_to_document(sample, mock_session)
assert msg2.buffers == []
# RootRemoved
event3 = RootRemovedEvent(sample, root)
msg3 = Protocol("1.0").create("PATCH-DOC", [event3])
msg3.apply_to_document(sample, mock_session)
assert msg3.buffers == []
# ColumnsStreamed
event4 = ModelChangedEvent(sample, cds, 'data', 10, None, None,
hint=ColumnsStreamedEvent(sample, cds, {"a": [3]}, None, mock_session))
msg4 = Protocol("1.0").create("PATCH-DOC", [event4])
msg4.apply_to_document(sample, mock_session)
assert msg4.buffers == []
# ColumnsPatched
event5 = ModelChangedEvent(sample, cds, 'data', 10, None, None,
hint=ColumnsPatchedEvent(sample, cds, {"a": [(0, 11)]}))
msg5 = Protocol("1.0").create("PATCH-DOC", [event5])
msg5.apply_to_document(sample, mock_session)
assert msg5.buffers == []
# ColumnDataChanged, use_buffers=False
event6 = ModelChangedEvent(sample, cds, 'data', {'a': np.array([0., 1.])}, None, None,
hint=ColumnDataChangedEvent(sample, cds))
msg6 = Protocol("1.0").create("PATCH-DOC", [event6], use_buffers=False)
msg6.apply_to_document(sample, mock_session)
assert msg6.buffers == []
print(cds.data)
# ColumnDataChanged, use_buffers=True
event7 = ModelChangedEvent(sample, cds, 'data', {'a': np.array([0., 1.])}, None, None,
hint=ColumnDataChangedEvent(sample, cds))
msg7 = Protocol("1.0").create("PATCH-DOC", [event7])
# can't test apply, doc not set up to *receive* binary buffers
# msg7.apply_to_document(sample, mock_session)
assert len(msg7.buffers) == 1
buf = msg7.buffers.pop()
assert len(buf) == 2
assert isinstance(buf[0], dict)
assert list(buf[0]) == ['id']
# reports CDS buffer *as it is* Normally events called by setter and
# value in local object would have been already mutated.
assert buf[1] == np.array([11., 1., 2., 3]).tobytes()
class _Event(object):