def test_single_row_copy_with_zero(self, bokeh_model_page): data = {'x': [1,2,3,4], 'y': [0, 0, 0, 0], 'd': ['foo', 'bar', 'baz', 'quux']} source = ColumnDataSource(data) table = DataTable(columns=[ TableColumn(field="x", title="x"), TableColumn(field="y", title="y"), TableColumn(field="d", title="d"), ], source=source) text_input = TextAreaInput(css_classes=["foo"]) text_input.js_on_change('value', CustomJS(code=RECORD("value", "cb_obj.value"))) page = bokeh_model_page(column(table, text_input)) # select the third row row = get_table_row(page.driver, 2) row.click() enter_text_in_element(page.driver, row, Keys.INSERT, mod=Keys.CONTROL, click=0, enter=False) input_el = page.driver.find_element_by_css_selector('.foo') enter_text_in_element(page.driver, input_el, Keys.INSERT, mod=Keys.SHIFT, enter=False) #enter_text_in_element(page.driver, input_el, "") sleep(0.5) results = page.results assert results['value'] == '1\t2\t0\tbar\n' assert page.has_no_console_errors()
from bokeh.io import show from bokeh.models import CustomJS, TextAreaInput text_area_input = TextAreaInput(value="default", rows=6, title="Label:") text_area_input.js_on_change( "value", CustomJS(code=""" console.log('text_area_input: value=' + this.value, this.toString()) """)) show(text_area_input)