def test_disjuction(self): from bokeh.query import OR res = list( query.find(self.plot.references(), {OR: [dict(type=Axis), dict(type=Grid)]}) ) self.assertEqual(len(res), 5) res = list( query.find(self.plot.references(), {OR: [dict(type=Axis), dict(name="mycircle")]}) ) self.assertEqual(len(res), 4) res = list( query.find(self.plot.references(), {OR: [dict(type=Axis), dict(tags="foo"), dict(name="mycircle")]}) ) self.assertEqual(len(res), 6) res = list( query.find(self.plot.references(), {OR: [dict(type=Axis), dict(tags="foo"), dict(name="mycircle"), dict(name="bad")]}) ) self.assertEqual(len(res), 6)
def test_tags_with_seq(self): cases = { "foo": 2, "bar": 1, } for tag, count in cases.items(): res = list(query.find(self.plot.references(), dict(tags=[tag]))) self.assertEqual(len(res), count) res = list(query.find(self.plot.references(), dict(tags=list(cases.keys())))) self.assertEqual(len(res), 2)
def test_conjuction(self): res = list( query.find(self.plot.references(), dict(type=Axis, tags="foo"))) self.assertEqual(len(res), 0) res = list( query.find(self.plot.references(), dict(type=Range1d, tags="foo"))) self.assertEqual(len(res), 2) res = list( query.find(self.plot.references(), dict(type=GlyphRenderer, name="mycircle"))) self.assertEqual(len(res), 1)
def test_in(self): from bokeh.query import IN res = list(query.find(self.plot.references(), dict(name={IN: ['a', 'b']}))) self.assertEqual(len(res), 0) res = list(query.find(self.plot.references(), dict(name={IN: ['a', 'mycircle']}))) self.assertEqual(len(res), 1) res = list(query.find(self.plot.references(), dict(name={IN: ['a', 'mycircle', 'myline']}))) self.assertEqual(len(res), 2) res = list(query.find(self.plot.references(), dict(name={IN: ['a', 'mycircle', 'myline', 'myrect']}))) self.assertEqual(len(res), 3) for typ, count in typcases.items(): res = list(query.find(self.plot.references(), dict(type={IN: [typ]}))) self.assertEqual(len(res), count) self.assertTrue(all(isinstance(x, typ) for x in res)) res = list(query.find(self.plot.references(), dict(type={IN: [typ, dict]}))) self.assertEqual(len(res), count) self.assertTrue(all(isinstance(x, typ) for x in res)) res = list(query.find(self.plot.references(), dict(type={IN: [dict]}))) self.assertEqual(len(res), 0) # count adjusted by hand to account for duplicates/subclasses res = list(query.find(self.plot.references(), dict(type={IN: list(typcases.keys())}))) self.assertEqual(len(res), 18)
def test_conjuction(self): res = list( query.find(self.plot.references(), dict(type=Axis, tags="foo")) ) self.assertEqual(len(res), 0) res = list( query.find(self.plot.references(), dict(type=Range1d, tags="foo")) ) self.assertEqual(len(res), 2) res = list( query.find(self.plot.references(), dict(type=GlyphRenderer, name="mycircle")) ) self.assertEqual(len(res), 1)
def test_name(self): cases = { "myline": Line, "mycircle": Circle, "myrect": Rect, } for name, typ in cases.items(): res = list(query.find(self.plot.references(), dict(name=name))) self.assertEqual(len(res), 1) self.assertTrue(all(isinstance(x.glyph, typ) for x in res))
def test_ops(self): from bokeh.query import EQ, LEQ, GEQ, LT, GT, NEQ res = list( query.find(self.plot.references(), {'size': {EQ: 5}}) ) self.assertEqual(len(res), 1) res = list( query.find(self.plot.references(), {'size': {NEQ: 5}}) ) self.assertEqual(len(res), 0) res = list( query.find(self.plot.references(), {'size': {GEQ: 5}}) ) self.assertEqual(len(res), 1) res = list( query.find(self.plot.references(), {'size': {LEQ: 5}}) ) self.assertEqual(len(res), 1) res = list( query.find(self.plot.references(), {'size': {GT: 5}}) ) self.assertEqual(len(res), 0) res = list( query.find(self.plot.references(), {'size': {LT: 5}}) ) self.assertEqual(len(res), 0)
def test_type(self): for typ, count in typcases.items(): res = list(query.find(self.plot.references(), dict(type=typ))) self.assertEqual(len(res), count) self.assertTrue(all(isinstance(x, typ) for x in res))