def test_combine_with_hint_defers(self, mock_combine: MagicMock) -> None: mock_combine.return_value = False m = FakeModel() h = bde.ColumnsStreamedEvent("doc", m, dict(foo=1), 200, "setter", "invoker") h2 = bde.ColumnsStreamedEvent("doc", m, dict(foo=2), 300, "setter", "invoker") e = bde.ModelChangedEvent("doc", "model", "attr", "old", "new", "snew", hint=h, callback_invoker="invoker") e2 = bde.ModelChangedEvent("doc", "model", "attr", "old2", "new2", "snew2", hint=h2, callback_invoker="invoker2") assert e.combine(e2) == False assert mock_combine.call_count == 1 assert mock_combine.call_args[0] == (h2, ) assert mock_combine.call_args[1] == {}
def test_combine_ignores_all(self): m = FakeModel() e = bde.ColumnsStreamedEvent("doc", m, dict(foo=1), 200, "setter", "invoker") e2 = bde.ColumnsStreamedEvent("doc", m, dict(foo=2), 300, "setter", "invoker") assert e.combine(e2) == False assert e.column_source is m assert e.data == dict(foo=1) assert e.rollover == 200
def test_combine_ignores_all(self) -> None: doc = Document() m = SomeModel() e = bde.ColumnsStreamedEvent(doc, m, "data", dict(foo=1), 200, "setter", "invoker") e2 = bde.ColumnsStreamedEvent(doc, m, "data", dict(foo=2), 300, "setter", "invoker") assert e.combine(e2) == False assert e.model is m assert e.attr == "data" assert e.data == dict(foo=1) assert e.rollover == 200
def test_combine_with_defers(self, mock_combine: MagicMock) -> None: mock_combine.return_value = False doc = Document() m = SomeModel() e = bde.ColumnsStreamedEvent(doc, m, "data", dict(foo=1), 200, "setter", "invoker") e2 = bde.ColumnsStreamedEvent(doc, m, "data", dict(foo=2), 300, "setter", "invoker") assert e.combine(e2) == False assert mock_combine.call_count == 1 assert mock_combine.call_args[0] == (e2, ) assert mock_combine.call_args[1] == {}
def test_dispatch(self): m = FakeModel() e = bde.ColumnsStreamedEvent("doc", m, dict(foo=1), 200, "setter", "invoker") e.dispatch(FakeEmptyDispatcher()) d = FakeFullDispatcher() e.dispatch(d) assert d.called == ['_document_changed', '_document_patched', '_columns_streamed']
def test_pandas_data(self, pd) -> None: doc = Document() m = SomeModel() df = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]}) e = bde.ColumnsStreamedEvent(doc, m, "data", df, 200, "setter", "invoker") assert isinstance(e.data, dict) assert e.data == {c: df[c] for c in df.columns}
def test_generate(self): m = FakeModel() e = bde.ColumnsStreamedEvent("doc", m, dict(foo=1), 200, "setter", "invoker") refs = dict(foo=10) bufs = set() r = e.generate(refs, bufs) assert r == dict(kind="ColumnsStreamed", column_source="ref", data=dict(foo=1), rollover=200) assert refs == dict(foo=10) assert bufs == set()
def test_init(self): m = FakeModel() e = bde.ColumnsStreamedEvent("doc", m, dict(foo=1), 200, "setter", "invoker") assert e.document == "doc" assert e.column_source == m assert e.data == dict(foo=1) assert e.rollover == 200 assert e.setter == "setter" assert e.callback_invoker == "invoker"
def test_dispatch(self) -> None: doc = Document() m = SomeModel() e = bde.ColumnsStreamedEvent(doc, m, "data", dict(foo=1), 200, "setter", "invoker") e.dispatch(FakeEmptyDispatcher()) d = FakeFullDispatcher() e.dispatch(d) assert d.called == [ '_document_changed', '_document_patched', '_columns_streamed' ]
def test_init(self) -> None: doc = Document() m = SomeModel() e = bde.ColumnsStreamedEvent(doc, m, "data", dict(foo=1), 200, "setter", "invoker") assert e.document == doc assert e.model == m assert e.attr == "data" assert e.data == dict(foo=1) assert e.rollover == 200 assert e.setter == "setter" assert e.callback_invoker == "invoker"
def test_to_serializable(self) -> None: doc = Document() m = SomeModel() e = bde.ColumnsStreamedEvent(doc, m, "data", dict(foo=1), 200, "setter", "invoker") s = Serializer() r = s.encode(e) assert r == dict(kind=e.kind, model=m.ref, attr="data", data=MapRep(type="map", entries=[("foo", 1)]), rollover=200) assert s.buffers == []
def test_pandas_data(self, pd): m = FakeModel() df = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]}) e = bde.ColumnsStreamedEvent("doc", m, df, 200, "setter", "invoker") assert isinstance(e.data, dict) assert e.data == {c: df[c] for c in df.columns}