def test_document_bad_on_session_destroyed_signature(self) -> None: doc = Document() def destroy(a, b): pass with pytest.raises(ValueError): doc.on_session_destroyed(destroy)
def test_document_bad_on_session_destroyed_signature(self): doc = Document() def destroy(a, b): pass with pytest.raises(ValueError): doc.on_session_destroyed(destroy)
def test_document_on_session_destroyed(self): doc = Document() handler = bahd.DocumentLifecycleHandler() def destroy(session_context): assert doc is session_context._document session_context.status = 'Destroyed' doc.on_session_destroyed(destroy) session_context = MockSessionContext(doc) handler.on_session_destroyed(session_context) assert session_context.status == 'Destroyed'
async def test_document_on_session_destroyed(self) -> None: doc = Document() handler = bahd.DocumentLifecycleHandler() def destroy(session_context): assert doc is session_context._document session_context.status = 'Destroyed' doc.on_session_destroyed(destroy) session_context = MockSessionContext(doc) await handler.on_session_destroyed(session_context) assert session_context.status == 'Destroyed' assert session_context._document.session_destroyed_callbacks == set()
def test_document_on_session_destroyed(self): doc = Document() handler = bahd.DocumentLifecycleHandler() def destroy(session_context): assert doc is session_context._document session_context.status = 'Destroyed' doc.on_session_destroyed(destroy) session_context = MockSessionContext(doc) handler.on_session_destroyed(session_context) assert session_context.status == 'Destroyed' assert session_context._document.session_destroyed_callbacks == set()
async def test_document_on_session_destroyed_exceptions(self, caplog: pytest.LogCaptureFixture) -> None: doc = Document() def blowup(session_context): raise ValueError("boom!") doc.on_session_destroyed(blowup) handler = bahd.DocumentLifecycleHandler() session_context = MockSessionContext(doc) with caplog.at_level(logging.WARN): await handler.on_session_destroyed(session_context) assert len(caplog.records) == 1 assert "boom!" in caplog.text
def make_document(doc: Document): if self._on_session_destroyed is not None: doc.on_session_destroyed(self._on_session_destroyed) # set document title doc.title = self._title # set document template env = Environment(loader=PackageLoader('backtrader_plotting.bokeh', 'templates')) doc.template = env.get_template(self._html_template) doc.template_variables['stylesheet'] = utils.generate_stylesheet(self._scheme) # get root model model = self._model_factory_fnc(doc) doc.add_root(model)
async def test_document_on_session_destroyed_calls_multiple(self) -> None: doc = Document() def increment(session_context): session_context.counter += 1 doc.on_session_destroyed(increment) def increment_by_two(session_context): session_context.counter += 2 doc.on_session_destroyed(increment_by_two) handler = bahd.DocumentLifecycleHandler() session_context = MockSessionContext(doc) await handler.on_session_destroyed(session_context) assert session_context.counter == 3, 'DocumentLifecycleHandler did not call all callbacks'
def test_document_on_session_destroyed_calls_multiple(self): doc = Document() def increment(session_context): session_context.counter += 1 doc.on_session_destroyed(increment) def increment_by_two(session_context): session_context.counter += 2 doc.on_session_destroyed(increment_by_two) handler = bahd.DocumentLifecycleHandler() session_context = MockSessionContext(doc) handler.on_session_destroyed(session_context) assert session_context.counter == 3, 'DocumentLifecycleHandler did not call all callbacks'
def make_document(doc: Document): if self._on_session_destroyed is not None: doc.on_session_destroyed(self._on_session_destroyed) # set document title doc.title = self._title # set document template now = datetime.now() env = Environment(loader=PackageLoader('btplotting', 'templates')) templ = env.get_template(self._html_template) templ.globals['now'] = now.strftime('%Y-%m-%d %H:%M:%S') doc.template = templ doc.template_variables['stylesheet'] = generate_stylesheet( self._scheme) model = self._model_factory_fnc(doc) doc.add_root(model)