From 3febbc6edce69f426f342b9adb3e2e78f98eac11 Mon Sep 17 00:00:00 2001 From: Zackery Spytz Date: Mon, 28 Oct 2019 04:48:56 -0600 Subject: [PATCH 1/9] bpo-4630: A cursor blink option for IDLE Add an option to toggle IDLE's cursor blink. Co-Authored-By: Guilherme Polo Co-Authored-By: Roger Serwy --- Lib/idlelib/config-main.def | 1 + Lib/idlelib/configdialog.py | 19 +++++++++++++++++++ Lib/idlelib/editor.py | 14 ++++++++++++++ .../2019-10-28-04-48-03.bpo-4630.upgjiV.rst | 1 + 4 files changed, 35 insertions(+) create mode 100644 Misc/NEWS.d/next/IDLE/2019-10-28-04-48-03.bpo-4630.upgjiV.rst diff --git a/Lib/idlelib/config-main.def b/Lib/idlelib/config-main.def index b2be6250d021afe..86c07bf6e2459cb 100644 --- a/Lib/idlelib/config-main.def +++ b/Lib/idlelib/config-main.def @@ -66,6 +66,7 @@ font-size= 10 font-bold= 0 encoding= none line-numbers-default= 0 +cursor-blink= 1 [PyShell] auto-squeeze-min-lines= 50 diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py index df216582fe60930..6fc604e01673550 100644 --- a/Lib/idlelib/configdialog.py +++ b/Lib/idlelib/configdialog.py @@ -236,6 +236,7 @@ def activate_config_changes(self): instance.set_notabs_indentwidth() instance.ApplyKeybindings() instance.reset_help_menu_entries() + instance.UpdateCursorBlink() for klass in reloadables: klass.reload() @@ -1844,6 +1845,9 @@ def create_page_general(self): frame_context: Frame context_title: Label (*)context_int: Entry - context_lines + frame_cursor_blink_default: Frame + cursor_blink_default_title: Label + (*)cursor_blink_default_bool: Checkbutton - cursor_blink_default frame_shell: LabelFrame frame_auto_squeeze_min_lines: Frame auto_squeeze_min_lines_title: Label @@ -1885,6 +1889,8 @@ def create_page_general(self): ('main', 'EditorWindow', 'line-numbers-default')) self.context_lines = tracers.add( StringVar(self), ('extensions', 'CodeContext', 'maxlines')) + self.cursor_blink_default = tracers.add( + BooleanVar(self), ('main', 'EditorWindow', 'cursor-blink')) # Create widgets: # Section frames. @@ -1976,6 +1982,13 @@ def create_page_general(self): validatecommand=self.digits_only, validate='key', ) + frame_cursor_blink_default = Frame(frame_editor, borderwidth=0) + cursor_blink_default_title = Label( + frame_cursor_blink_default, text='Cursor Blink') + self.cursor_blink_default_bool = Checkbutton( + frame_cursor_blink_default, + variable=self.cursor_blink_default, width=1) + # Frame_shell. frame_auto_squeeze_min_lines = Frame(frame_shell, borderwidth=0) auto_squeeze_min_lines_title = Label(frame_auto_squeeze_min_lines, @@ -2054,6 +2067,10 @@ def create_page_general(self): frame_context.pack(side=TOP, padx=5, pady=0, fill=X) context_title.pack(side=LEFT, anchor=W, padx=5, pady=5) self.context_int.pack(side=TOP, padx=5, pady=5) + # frame_cursor_blink_default. + frame_cursor_blink_default.pack(side=TOP, padx=5, pady=0, fill=X) + cursor_blink_default_title.pack(side=LEFT, anchor=W, padx=5, pady=5) + self.cursor_blink_default_bool.pack(side=LEFT, padx=5, pady=5) # frame_auto_squeeze_min_lines frame_auto_squeeze_min_lines.pack(side=TOP, padx=5, pady=0, fill=X) @@ -2096,6 +2113,8 @@ def load_general_cfg(self): 'main', 'EditorWindow', 'line-numbers-default', type='bool')) self.context_lines.set(idleConf.GetOption( 'extensions', 'CodeContext', 'maxlines', type='int')) + self.cursor_blink_default.set(idleConf.GetOption( + 'main', 'EditorWindow', 'cursor-blink', type='bool')) # Set variables for shell windows. self.auto_squeeze_min_lines.set(idleConf.GetOption( diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py index adeed74059f847d..5631fb2755ff706 100644 --- a/Lib/idlelib/editor.py +++ b/Lib/idlelib/editor.py @@ -134,6 +134,10 @@ def __init__(self, flist=None, filename=None, key=None, root=None): 'main', 'EditorWindow', 'height', type='int'), } self.text = text = MultiCallCreator(Text)(text_frame, **text_options) + # Store the current value of the insertofftime now so we can restore + # it if needed. + self.text._insertofftime = self.text['insertofftime'] + self.UpdateCursorBlink() self.top.focused_widget = self.text self.createmenubar() @@ -803,6 +807,16 @@ def colorize_syntax_error(self, text, pos): text.mark_set("insert", pos + "+1c") text.see(pos) + def UpdateCursorBlink(self): + "Update the cursor blink configuration." + cursorblink = idleConf.GetOption( + 'main', 'EditorWindow', 'cursor-blink', type='bool') + if not cursorblink: + self.text.config(insertofftime=0) + else: + # Restore the original value + self.text.config(insertofftime=self.text._insertofftime) + def ResetFont(self): "Update the text widgets' font if it is changed" # Called from configdialog.py diff --git a/Misc/NEWS.d/next/IDLE/2019-10-28-04-48-03.bpo-4630.upgjiV.rst b/Misc/NEWS.d/next/IDLE/2019-10-28-04-48-03.bpo-4630.upgjiV.rst new file mode 100644 index 000000000000000..3df35dc5efd9095 --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2019-10-28-04-48-03.bpo-4630.upgjiV.rst @@ -0,0 +1 @@ +Add an option to toggle IDLE's cursor blink. From d23f9e824519919b168cc6ec0f0af68fc475e45d Mon Sep 17 00:00:00 2001 From: Zackery Spytz Date: Fri, 1 Nov 2019 15:11:53 -0600 Subject: [PATCH 2/9] Address the review comments. --- Lib/idlelib/configdialog.py | 34 ++++++++++++++++------------------ Lib/idlelib/editor.py | 13 +++++++------ 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py index 6fc604e01673550..24b9408cb0b0c80 100644 --- a/Lib/idlelib/configdialog.py +++ b/Lib/idlelib/configdialog.py @@ -1821,6 +1821,9 @@ def create_page_general(self): (*)win_width_int: Entry - win_width win_height_title: Label (*)win_height_int: Entry - win_height + frame_cursor_blink: Frame + cursor_blink_title: Label + (*)cursor_blink_bool: Checkbutton - cursor_blink frame_autocomplete: Frame auto_wait_title: Label (*)auto_wait_int: Entry - autocomplete_wait @@ -1845,9 +1848,6 @@ def create_page_general(self): frame_context: Frame context_title: Label (*)context_int: Entry - context_lines - frame_cursor_blink_default: Frame - cursor_blink_default_title: Label - (*)cursor_blink_default_bool: Checkbutton - cursor_blink_default frame_shell: LabelFrame frame_auto_squeeze_min_lines: Frame auto_squeeze_min_lines_title: Label @@ -1868,6 +1868,8 @@ def create_page_general(self): StringVar(self), ('main', 'EditorWindow', 'width')) self.win_height = tracers.add( StringVar(self), ('main', 'EditorWindow', 'height')) + self.cursor_blink = tracers.add( + BooleanVar(self), ('main', 'EditorWindow', 'cursor-blink')) self.autocomplete_wait = tracers.add( StringVar(self), ('extensions', 'AutoComplete', 'popupwait')) self.paren_style = tracers.add( @@ -1889,8 +1891,6 @@ def create_page_general(self): ('main', 'EditorWindow', 'line-numbers-default')) self.context_lines = tracers.add( StringVar(self), ('extensions', 'CodeContext', 'maxlines')) - self.cursor_blink_default = tracers.add( - BooleanVar(self), ('main', 'EditorWindow', 'cursor-blink')) # Create widgets: # Section frames. @@ -1926,6 +1926,11 @@ def create_page_general(self): validatecommand=self.digits_only, validate='key', ) + frame_cursor_blink = Frame(frame_window, borderwidth=0) + cursor_blink_title = Label(frame_cursor_blink, text='Cursor Blink') + self.cursor_blink_bool = Checkbutton(frame_cursor_blink, + variable=self.cursor_blink, width=1) + frame_autocomplete = Frame(frame_window, borderwidth=0,) auto_wait_title = Label(frame_autocomplete, text='Completions Popup Wait (milliseconds)') @@ -1982,13 +1987,6 @@ def create_page_general(self): validatecommand=self.digits_only, validate='key', ) - frame_cursor_blink_default = Frame(frame_editor, borderwidth=0) - cursor_blink_default_title = Label( - frame_cursor_blink_default, text='Cursor Blink') - self.cursor_blink_default_bool = Checkbutton( - frame_cursor_blink_default, - variable=self.cursor_blink_default, width=1) - # Frame_shell. frame_auto_squeeze_min_lines = Frame(frame_shell, borderwidth=0) auto_squeeze_min_lines_title = Label(frame_auto_squeeze_min_lines, @@ -2037,6 +2035,10 @@ def create_page_general(self): win_height_title.pack(side=RIGHT, anchor=E, pady=5) self.win_width_int.pack(side=RIGHT, anchor=E, padx=10, pady=5) win_width_title.pack(side=RIGHT, anchor=E, pady=5) + # frame_cursor_blink. + frame_cursor_blink.pack(side=TOP, padx=5, pady=0, fill=X) + cursor_blink_title.pack(side=LEFT, anchor=W, padx=5, pady=5) + self.cursor_blink_bool.pack(side=LEFT, padx=5, pady=5) # frame_autocomplete. frame_autocomplete.pack(side=TOP, padx=5, pady=0, fill=X) auto_wait_title.pack(side=LEFT, anchor=W, padx=5, pady=5) @@ -2067,10 +2069,6 @@ def create_page_general(self): frame_context.pack(side=TOP, padx=5, pady=0, fill=X) context_title.pack(side=LEFT, anchor=W, padx=5, pady=5) self.context_int.pack(side=TOP, padx=5, pady=5) - # frame_cursor_blink_default. - frame_cursor_blink_default.pack(side=TOP, padx=5, pady=0, fill=X) - cursor_blink_default_title.pack(side=LEFT, anchor=W, padx=5, pady=5) - self.cursor_blink_default_bool.pack(side=LEFT, padx=5, pady=5) # frame_auto_squeeze_min_lines frame_auto_squeeze_min_lines.pack(side=TOP, padx=5, pady=0, fill=X) @@ -2095,6 +2093,8 @@ def load_general_cfg(self): 'main', 'EditorWindow', 'width', type='int')) self.win_height.set(idleConf.GetOption( 'main', 'EditorWindow', 'height', type='int')) + self.cursor_blink.set(idleConf.GetOption( + 'main', 'EditorWindow', 'cursor-blink', type='bool')) self.autocomplete_wait.set(idleConf.GetOption( 'extensions', 'AutoComplete', 'popupwait', type='int')) self.paren_style.set(idleConf.GetOption( @@ -2113,8 +2113,6 @@ def load_general_cfg(self): 'main', 'EditorWindow', 'line-numbers-default', type='bool')) self.context_lines.set(idleConf.GetOption( 'extensions', 'CodeContext', 'maxlines', type='int')) - self.cursor_blink_default.set(idleConf.GetOption( - 'main', 'EditorWindow', 'cursor-blink', type='bool')) # Set variables for shell windows. self.auto_squeeze_min_lines.set(idleConf.GetOption( diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py index 5631fb2755ff706..79a87e280c96651 100644 --- a/Lib/idlelib/editor.py +++ b/Lib/idlelib/editor.py @@ -134,10 +134,6 @@ def __init__(self, flist=None, filename=None, key=None, root=None): 'main', 'EditorWindow', 'height', type='int'), } self.text = text = MultiCallCreator(Text)(text_frame, **text_options) - # Store the current value of the insertofftime now so we can restore - # it if needed. - self.text._insertofftime = self.text['insertofftime'] - self.UpdateCursorBlink() self.top.focused_widget = self.text self.createmenubar() @@ -245,6 +241,11 @@ def __init__(self, flist=None, filename=None, key=None, root=None): self.indentwidth = self.tabwidth self.set_notabs_indentwidth() + # Store the current value of the insertofftime now so we can restore + # it if needed. + self.blink_off_time = self.text['insertofftime'] + self.UpdateCursorBlink() + # When searching backwards for a reliable place to begin parsing, # first start num_context_lines[0] lines back, then # num_context_lines[1] lines back if that didn't work, and so on. @@ -812,10 +813,10 @@ def UpdateCursorBlink(self): cursorblink = idleConf.GetOption( 'main', 'EditorWindow', 'cursor-blink', type='bool') if not cursorblink: - self.text.config(insertofftime=0) + self.text['insertofftime'] = 0 else: # Restore the original value - self.text.config(insertofftime=self.text._insertofftime) + self.text['insertofftime'] = self.blink_off_time def ResetFont(self): "Update the text widgets' font if it is changed" From d3d7bda94002cd7ca406974b3d7b4b2766531cfb Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Tue, 12 Nov 2019 23:29:52 -0500 Subject: [PATCH 3/9] Move config-main cursor-blink line. --- Lib/idlelib/config-main.def | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/idlelib/config-main.def b/Lib/idlelib/config-main.def index 86c07bf6e2459cb..28ae94161d5c035 100644 --- a/Lib/idlelib/config-main.def +++ b/Lib/idlelib/config-main.def @@ -59,6 +59,7 @@ delete-exitfunc= 1 [EditorWindow] width= 80 height= 40 +cursor-blink= 1 font= TkFixedFont # For TkFixedFont, the actual size and boldness are obtained from tk # and override 10 and 0. See idlelib.config.IdleConf.GetFont @@ -66,7 +67,6 @@ font-size= 10 font-bold= 0 encoding= none line-numbers-default= 0 -cursor-blink= 1 [PyShell] auto-squeeze-min-lines= 50 From ff0fa402fe524bf6d745786be779c4fd70664675 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Wed, 13 Nov 2019 00:20:07 -0500 Subject: [PATCH 4/9] Store insertofftime once, on idleConf. --- Lib/idlelib/config.py | 2 ++ Lib/idlelib/editor.py | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Lib/idlelib/config.py b/Lib/idlelib/config.py index 12e6f9fae78b80f..04444a3bf20b30b 100644 --- a/Lib/idlelib/config.py +++ b/Lib/idlelib/config.py @@ -158,6 +158,8 @@ def __init__(self, _utest=False): self.defaultCfg = {} self.userCfg = {} self.cfg = {} # TODO use to select userCfg vs defaultCfg + # self.blink_off_time = ['insertofftime'] + # See https:/bugs.python.org/issue4630, msg356516. if not _utest: self.CreateConfigHandlers() diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py index 79a87e280c96651..c97c49c4941ab67 100644 --- a/Lib/idlelib/editor.py +++ b/Lib/idlelib/editor.py @@ -243,7 +243,8 @@ def __init__(self, flist=None, filename=None, key=None, root=None): # Store the current value of the insertofftime now so we can restore # it if needed. - self.blink_off_time = self.text['insertofftime'] + if not hasattr(idleConf, 'blink_off_time'): + idleConf.blink_off_time = self.text['insertofftime'] self.UpdateCursorBlink() # When searching backwards for a reliable place to begin parsing, @@ -816,7 +817,7 @@ def UpdateCursorBlink(self): self.text['insertofftime'] = 0 else: # Restore the original value - self.text['insertofftime'] = self.blink_off_time + self.text['insertofftime'] = idleConf.blink_off_time def ResetFont(self): "Update the text widgets' font if it is changed" From acfba86f57b8aaff0cb0c7c06d9aabde00c7d216 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Wed, 13 Nov 2019 00:42:02 -0500 Subject: [PATCH 5/9] News item. --- Lib/idlelib/NEWS.txt | 6 +++++- .../next/IDLE/2019-10-28-04-48-03.bpo-4630.upgjiV.rst | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 938c9c7d06b05ab..b02a9880505e83a 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -3,7 +3,11 @@ Released on 2020-10-05? ====================================== -bop-26353: Stop adding newline when saving an IDLE shell window. +bpo-4360: Add an option to toggle IDLE's cursor blink for shell, +editor, and output windows. See Settings, General, Window Preferences, +Cursor Blink. Patch by Zachary Spytz. + +bpo-26353: Stop adding newline when saving an IDLE shell window. bpo-38598: Do not try to compile IDLE shell or output windows. diff --git a/Misc/NEWS.d/next/IDLE/2019-10-28-04-48-03.bpo-4630.upgjiV.rst b/Misc/NEWS.d/next/IDLE/2019-10-28-04-48-03.bpo-4630.upgjiV.rst index 3df35dc5efd9095..759b35b77fb8d03 100644 --- a/Misc/NEWS.d/next/IDLE/2019-10-28-04-48-03.bpo-4630.upgjiV.rst +++ b/Misc/NEWS.d/next/IDLE/2019-10-28-04-48-03.bpo-4630.upgjiV.rst @@ -1 +1,3 @@ -Add an option to toggle IDLE's cursor blink. +Add an option to toggle IDLE's cursor blink for shell, editor, and output +windows. See Settings, General, Window Preferences, Cursor Blink. +Patch by Zachary Spytz. From 09e9fa8d1d6b2cf8235255749aeffeddaca0e5b5 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Wed, 13 Nov 2019 00:44:43 -0500 Subject: [PATCH 6/9] Add unit test. --- Lib/idlelib/idle_test/test_configdialog.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Lib/idlelib/idle_test/test_configdialog.py b/Lib/idlelib/idle_test/test_configdialog.py index 37e83439c471edf..2e5cb7b69fd996c 100644 --- a/Lib/idlelib/idle_test/test_configdialog.py +++ b/Lib/idlelib/idle_test/test_configdialog.py @@ -1135,6 +1135,11 @@ def test_editor_size(self): d.win_width_int.insert(0, '11') self.assertEqual(mainpage, {'EditorWindow': {'width': '11'}}) + def text_cursor_blink(self): + self.page.cursor_blink_bool.select() + self.page.cursor_blink_bool.toggle() + self.assertEqual(mainpage, {'EditorWindow': {'cursor-blink': 0}}) + def test_autocomplete_wait(self): self.page.auto_wait_int.delete(0, 'end') self.page.auto_wait_int.insert(0, '11') From b690e7a15a425f9e4d05772667f5c5b6400e7ed9 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Wed, 13 Nov 2019 01:03:01 -0500 Subject: [PATCH 7/9] Fix typo. --- Lib/idlelib/idle_test/test_configdialog.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Lib/idlelib/idle_test/test_configdialog.py b/Lib/idlelib/idle_test/test_configdialog.py index 2e5cb7b69fd996c..ff0fa540ec50bc9 100644 --- a/Lib/idlelib/idle_test/test_configdialog.py +++ b/Lib/idlelib/idle_test/test_configdialog.py @@ -1135,7 +1135,8 @@ def test_editor_size(self): d.win_width_int.insert(0, '11') self.assertEqual(mainpage, {'EditorWindow': {'width': '11'}}) - def text_cursor_blink(self): + def test_cursor_blink(self): + raise Exception() self.page.cursor_blink_bool.select() self.page.cursor_blink_bool.toggle() self.assertEqual(mainpage, {'EditorWindow': {'cursor-blink': 0}}) From 20472c3bc94d5d67f6c10c506717f99dfaa50082 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Wed, 13 Nov 2019 01:03:49 -0500 Subject: [PATCH 8/9] Remove temporary line. --- Lib/idlelib/idle_test/test_configdialog.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Lib/idlelib/idle_test/test_configdialog.py b/Lib/idlelib/idle_test/test_configdialog.py index ff0fa540ec50bc9..d313641003d920e 100644 --- a/Lib/idlelib/idle_test/test_configdialog.py +++ b/Lib/idlelib/idle_test/test_configdialog.py @@ -1136,7 +1136,6 @@ def test_editor_size(self): self.assertEqual(mainpage, {'EditorWindow': {'width': '11'}}) def test_cursor_blink(self): - raise Exception() self.page.cursor_blink_bool.select() self.page.cursor_blink_bool.toggle() self.assertEqual(mainpage, {'EditorWindow': {'cursor-blink': 0}}) From 4bfc06e7832ed7cecbe445d620db0118fe5062ce Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Wed, 13 Nov 2019 01:13:00 -0500 Subject: [PATCH 9/9] Use pep8 name for new function, fix test. --- Lib/idlelib/configdialog.py | 2 +- Lib/idlelib/editor.py | 4 ++-- Lib/idlelib/idle_test/test_configdialog.py | 5 ++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py index 24b9408cb0b0c80..aaf319bbe1befd0 100644 --- a/Lib/idlelib/configdialog.py +++ b/Lib/idlelib/configdialog.py @@ -236,7 +236,7 @@ def activate_config_changes(self): instance.set_notabs_indentwidth() instance.ApplyKeybindings() instance.reset_help_menu_entries() - instance.UpdateCursorBlink() + instance.update_cursor_blink() for klass in reloadables: klass.reload() diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py index c97c49c4941ab67..dff104ff0f18f24 100644 --- a/Lib/idlelib/editor.py +++ b/Lib/idlelib/editor.py @@ -245,7 +245,7 @@ def __init__(self, flist=None, filename=None, key=None, root=None): # it if needed. if not hasattr(idleConf, 'blink_off_time'): idleConf.blink_off_time = self.text['insertofftime'] - self.UpdateCursorBlink() + self.update_cursor_blink() # When searching backwards for a reliable place to begin parsing, # first start num_context_lines[0] lines back, then @@ -809,7 +809,7 @@ def colorize_syntax_error(self, text, pos): text.mark_set("insert", pos + "+1c") text.see(pos) - def UpdateCursorBlink(self): + def update_cursor_blink(self): "Update the cursor blink configuration." cursorblink = idleConf.GetOption( 'main', 'EditorWindow', 'cursor-blink', type='bool') diff --git a/Lib/idlelib/idle_test/test_configdialog.py b/Lib/idlelib/idle_test/test_configdialog.py index d313641003d920e..1f14ed1f2647300 100644 --- a/Lib/idlelib/idle_test/test_configdialog.py +++ b/Lib/idlelib/idle_test/test_configdialog.py @@ -1136,9 +1136,8 @@ def test_editor_size(self): self.assertEqual(mainpage, {'EditorWindow': {'width': '11'}}) def test_cursor_blink(self): - self.page.cursor_blink_bool.select() - self.page.cursor_blink_bool.toggle() - self.assertEqual(mainpage, {'EditorWindow': {'cursor-blink': 0}}) + self.page.cursor_blink_bool.invoke() + self.assertEqual(mainpage, {'EditorWindow': {'cursor-blink': 'False'}}) def test_autocomplete_wait(self): self.page.auto_wait_int.delete(0, 'end')