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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()