def test_text_input(document, comm): text = TextInput(value='ABC', name='Text:') widget = text.get_root(document, comm=comm) assert isinstance(widget, text._widget_type) assert widget.value == 'ABC' assert widget.title == 'Text:' text._comm_change({'value': 'CBA'}) assert text.value == 'CBA' text.value = 'A' assert widget.value == 'A'
def test_widget_triggers_events(document, comm): """ Ensure widget events don't get swallowed in comm mode """ text = TextInput(value='ABC', name='Text:') widget = text.get_root(document, comm=comm) document.add_root(widget) document.hold() # Simulate client side change document._held_events = document._held_events[:-1] # Set new value with block_comm(): text.value = '123' assert len(document._held_events) == 1 event = document._held_events[0] assert event.attr == 'value' assert event.model is widget assert event.new == '123'