/opt/alt/python37/lib64/python3.7/idlelib/idle_test
NameSizeModeActions
__pycache__/-0755rm
htest.py151900644editdlrm
mock_idle.py19430644editdlrm
mock_tk.py116270644editdlrm
README.txt87290644editdlrm
template.py6420644editdlrm
test_autocomplete.py107170644editdlrm
test_autocomplete_w.py7090644editdlrm
test_autoexpand.py46380644editdlrm
test_browser.py79630644editdlrm
test_calltip.py99370644editdlrm
test_calltip_w.py6860644editdlrm
test_codecontext.py161200644editdlrm
test_colorizer.py150170644editdlrm
test_config.py320460644editdlrm
test_configdialog.py543500644editdlrm
test_config_key.py97090644editdlrm
test_debugger.py5710644editdlrm
test_debugger_r.py6310644editdlrm
test_debugobj.py15610644editdlrm
test_debugobj_r.py5450644editdlrm
test_delegator.py15670644editdlrm
test_editmenu.py25640644editdlrm
test_editor.py75230644editdlrm
test_filelist.py7950644editdlrm
test_format.py236120644editdlrm
test_grep.py50720644editdlrm
test_help.py8490644editdlrm
test_help_about.py59210644editdlrm
test_history.py55170644editdlrm
test_hyperparser.py90820644editdlrm
test_iomenu.py12780644editdlrm
test_macosx.py33090644editdlrm
test_mainmenu.py5940644editdlrm
test_multicall.py13160644editdlrm
test_outwin.py55450644editdlrm
test_parenmatch.py35500644editdlrm
test_pathbrowser.py24220644editdlrm
test_percolator.py40650644editdlrm
test_pyparse.py192270644editdlrm
test_pyshell.py21710644editdlrm
test_query.py152800644editdlrm
test_redirector.py41760644editdlrm
test_replace.py83050644editdlrm
test_rpc.py8050644editdlrm
test_run.py117370644editdlrm
test_runscript.py7770644editdlrm
test_scrolledlist.py4960644editdlrm
test_search.py24590644editdlrm
test_searchbase.py56350644editdlrm
test_searchengine.py115430644editdlrm
test_sidebar.py132310644editdlrm
test_squeezer.py200880644editdlrm
test_stackviewer.py12060644editdlrm
test_statusbar.py11330644editdlrm
test_text.py69780644editdlrm
test_textview.py73640644editdlrm
test_tooltip.py53850644editdlrm
test_tree.py17520644editdlrm
test_undo.py42280644editdlrm
test_warning.py27400644editdlrm
test_window.py10750644editdlrm
test_zoomheight.py9990644editdlrm
__init__.py7120644editdlrm
Edit: /opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_autoexpand.py (4638B)
"Test autoexpand, coverage 100%." from idlelib.autoexpand import AutoExpand import unittest from test.support import requires from tkinter import Text, Tk class DummyEditwin: # AutoExpand.__init__ only needs .text def __init__(self, text): self.text = text class AutoExpandTest(unittest.TestCase): @classmethod def setUpClass(cls): requires('gui') cls.tk = Tk() cls.text = Text(cls.tk) cls.auto_expand = AutoExpand(DummyEditwin(cls.text)) cls.auto_expand.bell = lambda: None # If mock_tk.Text._decode understood indexes 'insert' with suffixed 'linestart', # 'wordstart', and 'lineend', used by autoexpand, we could use the following # to run these test on non-gui machines (but check bell). ## try: ## requires('gui') ## #raise ResourceDenied() # Uncomment to test mock. ## except ResourceDenied: ## from idlelib.idle_test.mock_tk import Text ## cls.text = Text() ## cls.text.bell = lambda: None ## else: ## from tkinter import Tk, Text ## cls.tk = Tk() ## cls.text = Text(cls.tk) @classmethod def tearDownClass(cls): del cls.text, cls.auto_expand if hasattr(cls, 'tk'): cls.tk.destroy() del cls.tk def tearDown(self): self.text.delete('1.0', 'end') def test_get_prevword(self): text = self.text previous = self.auto_expand.getprevword equal = self.assertEqual equal(previous(), '') text.insert('insert', 't') equal(previous(), 't') text.insert('insert', 'his') equal(previous(), 'this') text.insert('insert', ' ') equal(previous(), '') text.insert('insert', 'is') equal(previous(), 'is') text.insert('insert', '\nsample\nstring') equal(previous(), 'string') text.delete('3.0', 'insert') equal(previous(), '') text.delete('1.0', 'end') equal(previous(), '') def test_before_only(self): previous = self.auto_expand.getprevword expand = self.auto_expand.expand_word_event equal = self.assertEqual self.text.insert('insert', 'ab ac bx ad ab a') equal(self.auto_expand.getwords(), ['ab', 'ad', 'ac', 'a']) expand('event') equal(previous(), 'ab') expand('event') equal(previous(), 'ad') expand('event') equal(previous(), 'ac') expand('event') equal(previous(), 'a') def test_after_only(self): # Also add punctuation 'noise' that should be ignored. text = self.text previous = self.auto_expand.getprevword expand = self.auto_expand.expand_word_event equal = self.assertEqual text.insert('insert', 'a, [ab] ac: () bx"" cd ac= ad ya') text.mark_set('insert', '1.1') equal(self.auto_expand.getwords(), ['ab', 'ac', 'ad', 'a']) expand('event') equal(previous(), 'ab') expand('event') equal(previous(), 'ac') expand('event') equal(previous(), 'ad') expand('event') equal(previous(), 'a') def test_both_before_after(self): text = self.text previous = self.auto_expand.getprevword expand = self.auto_expand.expand_word_event equal = self.assertEqual text.insert('insert', 'ab xy yz\n') text.insert('insert', 'a ac by ac') text.mark_set('insert', '2.1') equal(self.auto_expand.getwords(), ['ab', 'ac', 'a']) expand('event') equal(previous(), 'ab') expand('event') equal(previous(), 'ac') expand('event') equal(previous(), 'a') def test_other_expand_cases(self): text = self.text expand = self.auto_expand.expand_word_event equal = self.assertEqual # no expansion candidate found equal(self.auto_expand.getwords(), []) equal(expand('event'), 'break') text.insert('insert', 'bx cy dz a') equal(self.auto_expand.getwords(), []) # reset state by successfully expanding once # move cursor to another position and expand again text.insert('insert', 'ac xy a ac ad a') text.mark_set('insert', '1.7') expand('event') initial_state = self.auto_expand.state text.mark_set('insert', '1.end') expand('event') new_state = self.auto_expand.state self.assertNotEqual(initial_state, new_state) if __name__ == '__main__': unittest.main(verbosity=2)