Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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)
Beispiel #6
0
    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))
Beispiel #7
0
    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)
Beispiel #8
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))