Esempio n. 1
0
    def test_server_on_change_round_trip(self, bokeh_server_page):
        def modify_doc(doc):
            source = ColumnDataSource(dict(x=[1, 2], y=[1, 1], val=["a", "b"]))
            plot = Plot(plot_height=400,
                        plot_width=400,
                        x_range=Range1d(0, 1),
                        y_range=Range1d(0, 1),
                        min_border=0)
            plot.add_glyph(source, Circle(x='x', y='y', size=20))
            plot.add_tools(
                CustomAction(callback=CustomJS(args=dict(s=source),
                                               code=RECORD("data", "s.data"))))
            slider = Slider(start=0,
                            end=10,
                            value=1,
                            title="bar",
                            css_classes=["foo"],
                            width=300)

            def cb(attr, old, new):
                source.data['val'] = [old, new]

            slider.on_change('value', cb)
            doc.add_root(column(slider, plot))

        page = bokeh_server_page(modify_doc)

        drag_slider(page.driver, ".foo", 150)

        page.click_custom_action()
        results = page.results
        old, new = results['data']['val']
        assert float(old) == 1
        assert float(new) > 1

        drag_slider(page.driver, ".foo", 450)

        page.click_custom_action()
        results = page.results
        old, new = results['data']['val']
        assert float(new) == 10

        drag_slider(page.driver, ".foo", -600)

        page.click_custom_action()
        results = page.results
        old, new = results['data']['val']
        assert float(new) == 0

        el = page.driver.find_element_by_css_selector('.foo')
        handle = el.find_element_by_css_selector('.bk-noUi-handle')
        select_element_and_press_key(page.driver, handle, Keys.ARROW_RIGHT)

        page.click_custom_action()
        results = page.results
        old, new = results['data']['val']
        assert float(new) == 1
Esempio n. 2
0
 def test_keypress_event(self, bokeh_model_page) -> None:
     slider = Slider(start=0, end=10, value=1, title="bar", css_classes=["foo"], width=300)
     page = bokeh_model_page(slider)
     el = page.driver.find_element_by_css_selector('.foo')
     handle = el.find_element_by_css_selector('.noUi-handle')
     select_element_and_press_key(page.driver, handle, Keys.ARROW_RIGHT, press_number=1)
     assert float(get_slider_title_value(page.driver, ".foo")) == 2
     select_element_and_press_key(page.driver, handle, Keys.ARROW_LEFT, press_number=3) # hit lower value and continue
     assert float(get_slider_title_value(page.driver, ".foo")) == 0
     select_element_and_press_key(page.driver, handle, Keys.ARROW_RIGHT, press_number=11) # hit higher value and continue
     assert float(get_slider_title_value(page.driver, ".foo")) == 10
     assert page.has_no_console_errors()
Esempio n. 3
0
    def test_keypress_event(self, bokeh_model_page: BokehModelPage) -> None:
        slider = Slider(start=0, end=10, value=1, title="bar", width=300)
        page = bokeh_model_page(slider)

        handle = find_element_for(page.driver, slider, ".noUi-handle")

        select_element_and_press_key(page.driver,
                                     handle,
                                     Keys.ARROW_RIGHT,
                                     press_number=1)
        assert float(get_slider_title_value(page.driver, slider)) == 2
        select_element_and_press_key(
            page.driver, handle, Keys.ARROW_LEFT,
            press_number=3)  # hit lower value and continue
        assert float(get_slider_title_value(page.driver, slider)) == 0
        select_element_and_press_key(
            page.driver, handle, Keys.ARROW_RIGHT,
            press_number=11)  # hit higher value and continue
        assert float(get_slider_title_value(page.driver, slider)) == 10
        assert page.has_no_console_errors()
Esempio n. 4
0
    def test_keypress_event(self, bokeh_model_page) -> None:
        slider = RangeSlider(start=0,
                             end=10,
                             value=(1, 5),
                             title="bar",
                             css_classes=["foo"],
                             width=300)
        page = bokeh_model_page(slider)
        el = page.driver.find_element_by_css_selector('.foo')
        handle_lower = el.find_element_by_css_selector('.noUi-handle-lower')
        handle_upper = el.find_element_by_css_selector('.noUi-handle-upper')
        select_element_and_press_key(page.driver,
                                     handle_lower,
                                     Keys.ARROW_RIGHT,
                                     press_number=1)
        assert get_slider_title_value(page.driver, ".foo") == "2 .. 5"
        select_element_and_press_key(page.driver,
                                     handle_lower,
                                     Keys.ARROW_LEFT,
                                     press_number=5)
        assert get_slider_title_value(page.driver, ".foo") == "0 .. 5"
        select_element_and_press_key(page.driver,
                                     handle_lower,
                                     Keys.ARROW_RIGHT,
                                     press_number=11)
        assert get_slider_title_value(page.driver, ".foo") == "5 .. 5"
        select_element_and_press_key(page.driver,
                                     handle_upper,
                                     Keys.ARROW_RIGHT,
                                     press_number=1)
        assert get_slider_title_value(page.driver, ".foo") == "5 .. 6"
        select_element_and_press_key(page.driver,
                                     handle_upper,
                                     Keys.ARROW_LEFT,
                                     press_number=2)
        assert get_slider_title_value(page.driver, ".foo") == "5 .. 5"
        select_element_and_press_key(page.driver,
                                     handle_upper,
                                     Keys.ARROW_RIGHT,
                                     press_number=6)
        assert get_slider_title_value(page.driver, ".foo") == "5 .. 10"

        assert page.has_no_console_errors()
Esempio n. 5
0
    def test_keypress_event(self, bokeh_model_page: BokehModelPage) -> None:
        slider = RangeSlider(start=0,
                             end=10,
                             value=(1, 5),
                             title="bar",
                             width=300)
        page = bokeh_model_page(slider)

        handle_lower = find_element_for(page.driver, slider,
                                        ".noUi-handle-lower")
        handle_upper = find_element_for(page.driver, slider,
                                        ".noUi-handle-upper")

        select_element_and_press_key(page.driver,
                                     handle_lower,
                                     Keys.ARROW_RIGHT,
                                     press_number=1)
        assert get_slider_title_value(page.driver, slider) == "2 .. 5"
        select_element_and_press_key(page.driver,
                                     handle_lower,
                                     Keys.ARROW_LEFT,
                                     press_number=5)
        assert get_slider_title_value(page.driver, slider) == "0 .. 5"
        select_element_and_press_key(page.driver,
                                     handle_lower,
                                     Keys.ARROW_RIGHT,
                                     press_number=11)
        assert get_slider_title_value(page.driver, slider) == "5 .. 5"
        select_element_and_press_key(page.driver,
                                     handle_upper,
                                     Keys.ARROW_RIGHT,
                                     press_number=1)
        assert get_slider_title_value(page.driver, slider) == "5 .. 6"
        select_element_and_press_key(page.driver,
                                     handle_upper,
                                     Keys.ARROW_LEFT,
                                     press_number=2)
        assert get_slider_title_value(page.driver, slider) == "5 .. 5"
        select_element_and_press_key(page.driver,
                                     handle_upper,
                                     Keys.ARROW_RIGHT,
                                     press_number=6)
        assert get_slider_title_value(page.driver, slider) == "5 .. 10"

        assert page.has_no_console_errors()