def test_modelindocument_doesnt_validate_doc_due_to_env_var( check_integrity, monkeypatch): monkeypatch.setenv("BOKEH_VALIDATE_DOC", "false") p = figure() with embed._ModelInDocument([p]): pass assert not check_integrity.called
def test_list_of_model(self): p1 = Model() p2 = Model() self.assertIs(p1.document, None) self.assertIs(p2.document, None) with _ModelInDocument([p1, p2]): self.assertIsNot(p1.document, None) self.assertIsNot(p2.document, None) self.assertIs(p1.document, None) self.assertIs(p2.document, None)
def test_uses_doc_precedent(self): doc = Document() p1 = Model() p2 = Model() self.assertIs(p1.document, None) self.assertIs(p2.document, None) with _ModelInDocument([p1, p2, doc]): self.assertIsNot(p1.document, None) self.assertIsNot(p2.document, None) self.assertIs(p1.document, doc) self.assertIs(p2.document, doc) self.assertIs(p1.document, None) self.assertIs(p2.document, None)
def test_with_doc_in_child_raises_error(self): doc = Document() p1 = Model() p2 = SomeModelInTestObjects(child=Model()) doc.add_root(p2.child) self.assertIs(p1.document, None) self.assertIs(p2.document, None) self.assertIs(p2.child.document, doc) with self.assertRaisesRegexp(RuntimeError, p2._id): with _ModelInDocument([p1, p2]): self.assertIsNot(p1.document, None) self.assertIsNot(p2.document, None) self.assertIs(p1.document, doc) self.assertIs(p2.document, 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) self.assertIs(p1.document, None) self.assertIsNot(p2.document, None) with _ModelInDocument([p1, p2]): self.assertIsNot(p1.document, None) self.assertIsNot(p2.document, None) self.assertIs(p1.document, doc) self.assertIs(p2.document, doc) self.assertIs(p1.document, None) self.assertIsNot(p2.document, None)
def test_single_model(self): p = Model() self.assertIs(p.document, None) with _ModelInDocument([p]): self.assertIsNot(p.document, None) self.assertIs(p.document, None)
def test_modelindocument_validates_document_by_default(check_integrity): p = figure() with embed._ModelInDocument([p]): pass assert check_integrity.called