示例#1
0
    def test_title_updates(self, bokeh_model_page) -> None:
        slider = RangeSlider(start=0,
                             end=10,
                             value=(1, 9),
                             title="bar",
                             css_classes=["foo"],
                             width=300)

        page = bokeh_model_page(slider)

        assert get_slider_title_value(page.driver, ".foo") == "1 .. 9"

        drag_range_slider(page.driver, ".foo", "lower", 50)
        value = get_slider_title_value(page.driver, ".foo").split()[0]
        assert float(value) > 1
        assert float(value) == int(value)  # integral step size

        # don't go past upper handle
        drag_range_slider(page.driver, ".foo", "lower", 50)
        value = get_slider_title_value(page.driver, ".foo").split()[0]
        assert float(value) > 2

        drag_range_slider(page.driver, ".foo", "lower", -135)
        value = get_slider_title_value(page.driver, ".foo").split()[0]
        assert float(value) == 0

        assert page.has_no_console_errors()
示例#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()
示例#3
0
    def test_title_updates(self, bokeh_model_page: BokehModelPage) -> None:
        slider = DateSlider(start=start, end=end, value=value, width=300)

        page = bokeh_model_page(slider)

        assert get_slider_title_value(page.driver, slider) == "04 Aug 2017"

        drag_slider(page.driver, slider, 50)
        assert get_slider_title_value(page.driver, slider) > "04 Aug 2017"

        drag_slider(page.driver, slider, -70)
        assert get_slider_title_value(page.driver, slider) == "03 Aug 2017"

        assert page.has_no_console_errors()
示例#4
0
    def test_displays_title_scientific(self, bokeh_model_page) -> None:
        slider = RangeSlider(start=0,
                             end=10e-6,
                             step=1e-6,
                             value=(1e-6, 8e-6),
                             title="bar",
                             format=BasicTickFormatter(precision=2),
                             css_classes=["foo"],
                             width=300)

        page = bokeh_model_page(slider)

        el = page.driver.find_element_by_css_selector('.foo')
        assert len(
            el.find_elements_by_css_selector('div.bk-input-group > div')) == 2

        # XXX: WebElement.text returns undecoded UTF-8 byte strings as str (!) (not bytes)
        def decode(s: str) -> str:
            return bytes(map(ord, s)).decode("utf-8")

        t0 = decode(get_slider_title_text(page.driver, ".foo"))
        t1 = decode(get_slider_title_value(page.driver, ".foo"))

        assert t0 == "bar: 1.00e\u22126 .. 8.00e\u22126"
        assert t1 == "1.00e\u22126 .. 8.00e\u22126"

        assert page.has_no_console_errors()
示例#5
0
    def test_title_updates(self, bokeh_model_page) -> None:
        slider = DateRangeSlider(start=start, end=end, value=value, css_classes=["foo"], width=300)

        page = bokeh_model_page(slider)

        assert get_slider_title_value(page.driver, ".foo") == "04 Aug 2017 .. 09 Aug 2017"

        drag_range_slider(page.driver, ".foo", "lower", 50)
        val = get_slider_title_value(page.driver, ".foo").split(" .. ")[0]
        assert val > "04 Aug 2017"

        drag_range_slider(page.driver, ".foo", "lower", -70)
        val = get_slider_title_value(page.driver, ".foo").split(" .. ")[0]
        assert val == "03 Aug 2017"

        assert page.has_no_console_errors()
示例#6
0
    def test_title_updates(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)

        assert float(get_slider_title_value(page.driver, ".foo")) == 1

        drag_slider(page.driver, ".foo", 50)
        value = get_slider_title_value(page.driver, ".foo")
        assert float(value) > 1
        assert float(value) == int(value) # integral step size

        drag_slider(page.driver, ".foo", 50)
        assert float(get_slider_title_value(page.driver, ".foo")) > 2

        drag_slider(page.driver, ".foo", -135)
        assert float(get_slider_title_value(page.driver, ".foo")) == 0

        assert page.has_no_console_errors()
示例#7
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()
示例#8
0
    def test_displays_title(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')
        assert len(el.find_elements_by_css_selector('div.bk-input-group > div')) == 2

        assert get_slider_title_text(page.driver, ".foo") == "bar: 1"
        assert float(get_slider_title_value(page.driver, ".foo")) == 1

        assert page.has_no_console_errors()
    def test_displays_title(self, bokeh_model_page) -> None:
        slider = DateSlider(start=start, end=end, value=value, css_classes=["foo"], width=300)

        page = bokeh_model_page(slider)

        el = page.driver.find_element_by_css_selector('.foo')
        assert len(el.find_elements_by_css_selector('div.bk-input-group > div')) == 2

        assert get_slider_title_text(page.driver, ".foo") == "04 Aug 2017"
        assert get_slider_title_value(page.driver, ".foo") == "04 Aug 2017"

        assert page.has_no_console_errors()
示例#10
0
    def test_title_updates(self, bokeh_model_page: BokehModelPage) -> None:
        slider = DatetimeRangeSlider(start=start,
                                     end=end,
                                     value=value,
                                     width=300)

        page = bokeh_model_page(slider)

        assert get_slider_title_value(
            page.driver,
            slider) == '02 Feb 2022 05:04:03 .. 24 Mar 2022 12:34:56'

        drag_range_slider(page.driver, slider, "lower", 5)
        val = get_slider_title_value(page.driver, slider).split(" .. ")[0]
        assert val[:11] == "03 Feb 2022"

        drag_range_slider(page.driver, slider, "upper", -5)
        val = get_slider_title_value(page.driver, slider).split(" .. ")[1]
        assert val[:11] == "23 Mar 2022"

        assert page.has_no_console_errors()
示例#11
0
    def test_displays_title(self, bokeh_model_page: BokehModelPage) -> None:
        slider = DateSlider(start=start, end=end, value=value, width=300)

        page = bokeh_model_page(slider)

        children = find_elements_for(page.driver, slider,
                                     "div.bk-input-group > div")
        assert len(children) == 2

        assert get_slider_title_text(page.driver, slider) == "04 Aug 2017"
        assert get_slider_title_value(page.driver, slider) == "04 Aug 2017"

        assert page.has_no_console_errors()
示例#12
0
    def test_displays_title_scientific(self, bokeh_model_page) -> None:
        slider = RangeSlider(start=0, end=10e-6, step=1e-6, value=(1e-6, 8e-6), title="bar",
            format=BasicTickFormatter(precision=2), css_classes=["foo"], width=300)

        page = bokeh_model_page(slider)

        el = page.driver.find_element_by_css_selector('.foo')
        assert len(el.find_elements_by_css_selector('div.bk-input-group > div')) == 2

        assert get_slider_title_text(page.driver, ".foo") == "bar: 1.00e-6 .. 8.00e-6"
        assert get_slider_title_value(page.driver, ".foo") == "1.00e-6 .. 8.00e-6"

        assert page.has_no_console_errors()
示例#13
0
    def test_displays_title(self, bokeh_model_page: BokehModelPage) -> None:
        slider = Slider(start=0, end=10, value=1, title="bar", width=300)

        page = bokeh_model_page(slider)

        children = find_elements_for(page.driver, slider,
                                     "div.bk-input-group > div")
        assert len(children) == 2

        assert get_slider_title_text(page.driver, slider) == "bar: 1"
        assert float(get_slider_title_value(page.driver, slider)) == 1

        assert page.has_no_console_errors()
示例#14
0
    def test_displays_title(self, bokeh_model_page: BokehModelPage) -> None:
        slider = DatetimeRangeSlider(start=start,
                                     end=end,
                                     value=value,
                                     width=300)

        page = bokeh_model_page(slider)

        children = find_elements_for(page.driver, slider,
                                     "div.bk-input-group > div")
        assert len(children) == 2

        assert get_slider_title_text(
            page.driver,
            slider) == '02 Feb 2022 05:04:03 .. 24 Mar 2022 12:34:56'
        assert get_slider_title_value(
            page.driver,
            slider) == '02 Feb 2022 05:04:03 .. 24 Mar 2022 12:34:56'

        assert page.has_no_console_errors()
示例#15
0
    def test_displays_title_scientific(
            self, bokeh_model_page: BokehModelPage) -> None:
        slider = RangeSlider(start=0,
                             end=10e-6,
                             step=1e-6,
                             value=(1e-6, 8e-6),
                             title="bar",
                             format=BasicTickFormatter(precision=2),
                             width=300)
        page = bokeh_model_page(slider)

        children = find_elements_for(page.driver, slider,
                                     "div.bk-input-group > div")
        assert len(children) == 2

        t0 = get_slider_title_text(page.driver, slider)
        t1 = get_slider_title_value(page.driver, slider)

        assert t0 == "bar: 1.00e\u22126 .. 8.00e\u22126"
        assert t1 == "1.00e\u22126 .. 8.00e\u22126"

        assert page.has_no_console_errors()
示例#16
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()
示例#17
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()