示例#1
0
    def test_float_inputs(self, single_plot_page: SinglePlotPage) -> None:

        values_to_enter = [
            "0", "1", "-1", "+5", "0.1", "-0.1", "+0.1", "-.1", "+.1", "1e-6",
            "1.e5", "-1e+3", "-1.e-5", "a"
        ]

        expected_results = [
            0, 1, -1, 5, 0.1, -0.1, 0.1, -0.1, 0.1, 1e-6, 10, -1e3, -1e-5, None
        ]

        source = ColumnDataSource(dict(x=[1, 2], y=[1, 1]))
        plot = Plot(height=400,
                    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))
        num_input = NumericInput(high=10, mode="float")
        num_input.js_on_change('value',
                               CustomJS(code=RECORD("value", "cb_obj.value")))

        page = single_plot_page(column(num_input, plot))
        el = find_element_for(page.driver, num_input, "input")

        for val, res in zip(values_to_enter, expected_results):
            el.clear()
            enter_text_in_element(page.driver, el, val)

            results = page.results
            assert results['value'] == res
示例#2
0
    def test_js_on_change_executes(self,
                                   single_plot_page: SinglePlotPage) -> None:
        source = ColumnDataSource(dict(x=[1, 2], y=[1, 1]))
        plot = Plot(height=400,
                    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))
        num_input = NumericInput()
        num_input.js_on_change('value',
                               CustomJS(code=RECORD("value", "cb_obj.value")))

        page = single_plot_page(column(num_input, plot))

        el = find_element_for(page.driver, num_input, "input")
        enter_text_in_element(page.driver, el, "10")

        results = page.results
        assert results['value'] == 10

        # double click to highlight and overwrite old text
        enter_text_in_element(page.driver, el, "20", click=2)

        results = page.results
        assert results['value'] == 20

        # Check clicking outside input also triggers
        enter_text_in_element(page.driver, el, "30", click=2, enter=False)
        page.click_canvas_at_position(plot, 10, 10)
        results = page.results

        assert results['value'] == 30

        assert page.has_no_console_errors()
示例#3
0
    def test_low_high(self, single_plot_page: SinglePlotPage) -> None:
        source = ColumnDataSource(dict(x=[1, 2], y=[1, 1]))
        plot = Plot(height=400,
                    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))
        num_input = NumericInput(value=4, low=-1, high=10)
        num_input.js_on_change('value',
                               CustomJS(code=RECORD("value", "cb_obj.value")))

        page = single_plot_page(column(num_input, plot))

        el = find_element_for(page.driver, num_input, "input")
        assert el.get_attribute('value') == "4"

        enter_text_in_element(page.driver, el, "30", click=2)
        assert el.get_attribute('value') == "10"

        enter_text_in_element(page.driver, el, "-10", click=2)
        assert el.get_attribute('value') == "-1"