def test_list_of_model(self): p1 = Model() p2 = Model() assert p1.document is None assert p2.document is None with bes._ModelInDocument([p1, p2]): assert p1.document is not None assert p2.document is not None assert p1.document is None assert p2.document is None
def test_uses_doc_precedent(self): doc = Document() p1 = Model() p2 = Model() assert p1.document is None assert p2.document is None with bes._ModelInDocument([p1, p2, doc]): assert p1.document is not None assert p2.document is not None assert p1.document is doc assert p2.document is doc assert p1.document is None assert p2.document is None
def test_with_doc_in_child_raises_error(self): doc = Document() p1 = Model() p2 = SomeModelInTestObjects(child=Model()) doc.add_root(p2.child) assert p1.document is None assert p2.document is None assert p2.child.document is doc with pytest.raises(RuntimeError): with bes._ModelInDocument([p1, p2]): assert p1.document is not None assert p2.document is not None assert p1.document is doc assert p2.document is doc
def test_uses_precedent(self): # it's deliberate that the doc is on p2, so _ModelInDocument # has to be smart about looking for a doc anywhere in the list # before it starts inventing new documents doc = Document() p1 = Model() p2 = Model() doc.add_root(p2) assert p1.document is None assert p2.document is not None with bes._ModelInDocument([p1, p2]): assert p1.document is not None assert p2.document is not None assert p1.document is doc assert p2.document is doc assert p1.document is None assert p2.document is not None
def test_doesnt_validate_doc_due_to_env_var(self, check_integrity, monkeypatch, test_plot): monkeypatch.setenv("BOKEH_VALIDATE_DOC", "false") with bes._ModelInDocument([test_plot]): pass assert not check_integrity.called
def test_validates_document_by_default(self, check_integrity, test_plot): with bes._ModelInDocument([test_plot]): pass assert check_integrity.called
def test_single_model(self): p = Model() assert p.document is None with bes._ModelInDocument([p]): assert p.document is not None assert p.document is None