"""Unit tests for idlelib.AutoExpand""" import unittest from test.test_support import requires from Tkinter import Text, Tk #from idlelib.idle_test.mock_tk import Text from idlelib.AutoExpand import AutoExpand class Dummy_Editwin: # AutoExpand.__init__ only needs .text def __init__(self, text): self.text = text class AutoExpandTest(unittest.TestCase): @classmethod def setUpClass(cls): if 'Tkinter' in str(Text): requires('gui') cls.tk = Tk() cls.text = Text(cls.tk) else: cls.text = Text() cls.auto_expand = AutoExpand(Dummy_Editwin(cls.text)) @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 shoud 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)
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
README.txt | File | 5.36 KB | 0644 |
|
__init__.py | File | 650 B | 0644 |
|
__init__.pyc | File | 941 B | 0644 |
|
__init__.pyo | File | 941 B | 0644 |
|
htest.py | File | 13.46 KB | 0644 |
|
htest.pyc | File | 12.36 KB | 0644 |
|
htest.pyo | File | 12.36 KB | 0644 |
|
mock_idle.py | File | 1.56 KB | 0644 |
|
mock_idle.pyc | File | 2.94 KB | 0644 |
|
mock_idle.pyo | File | 2.94 KB | 0644 |
|
mock_tk.py | File | 11.3 KB | 0644 |
|
mock_tk.pyc | File | 12.42 KB | 0644 |
|
mock_tk.pyo | File | 12.42 KB | 0644 |
|
test_autocomplete.py | File | 4.81 KB | 0644 |
|
test_autocomplete.pyc | File | 5.98 KB | 0644 |
|
test_autocomplete.pyo | File | 5.98 KB | 0644 |
|
test_autoexpand.py | File | 4.03 KB | 0644 |
|
test_autoexpand.pyc | File | 4.85 KB | 0644 |
|
test_autoexpand.pyo | File | 4.85 KB | 0644 |
|
test_calltips.py | File | 6.97 KB | 0644 |
|
test_calltips.pyc | File | 12.47 KB | 0644 |
|
test_calltips.pyo | File | 12.47 KB | 0644 |
|
test_config_name.py | File | 2.41 KB | 0644 |
|
test_config_name.pyc | File | 4.08 KB | 0644 |
|
test_config_name.pyo | File | 4.08 KB | 0644 |
|
test_configdialog.py | File | 782 B | 0644 |
|
test_configdialog.pyc | File | 1.68 KB | 0644 |
|
test_configdialog.pyo | File | 1.68 KB | 0644 |
|
test_delegator.py | File | 1.26 KB | 0644 |
|
test_delegator.pyc | File | 1.33 KB | 0644 |
|
test_delegator.pyo | File | 1.33 KB | 0644 |
|
test_editmenu.py | File | 3.09 KB | 0644 |
|
test_editmenu.pyc | File | 4.46 KB | 0644 |
|
test_editmenu.pyo | File | 4.46 KB | 0644 |
|
test_formatparagraph.py | File | 14.01 KB | 0644 |
|
test_formatparagraph.pyc | File | 14.36 KB | 0644 |
|
test_formatparagraph.pyo | File | 14.36 KB | 0644 |
|
test_grep.py | File | 2.7 KB | 0644 |
|
test_grep.pyc | File | 3.81 KB | 0644 |
|
test_grep.pyo | File | 3.81 KB | 0644 |
|
test_helpabout.py | File | 1.57 KB | 0644 |
|
test_helpabout.pyc | File | 2.38 KB | 0644 |
|
test_helpabout.pyo | File | 2.38 KB | 0644 |
|
test_hyperparser.py | File | 5.55 KB | 0644 |
|
test_hyperparser.pyc | File | 6.78 KB | 0644 |
|
test_hyperparser.pyo | File | 6.78 KB | 0644 |
|
test_idlehistory.py | File | 5.37 KB | 0644 |
|
test_idlehistory.pyc | File | 8.28 KB | 0644 |
|
test_idlehistory.pyo | File | 8.28 KB | 0644 |
|
test_io.py | File | 9.28 KB | 0644 |
|
test_io.pyc | File | 11.67 KB | 0644 |
|
test_io.pyo | File | 11.67 KB | 0644 |
|
test_parenmatch.py | File | 3.73 KB | 0644 |
|
test_parenmatch.pyc | File | 5.53 KB | 0644 |
|
test_parenmatch.pyo | File | 5.53 KB | 0644 |
|
test_pathbrowser.py | File | 940 B | 0644 |
|
test_pathbrowser.pyc | File | 1.5 KB | 0644 |
|
test_pathbrowser.pyo | File | 1.5 KB | 0644 |
|
test_rstrip.py | File | 1.58 KB | 0644 |
|
test_rstrip.pyc | File | 1.78 KB | 0644 |
|
test_rstrip.pyo | File | 1.78 KB | 0644 |
|
test_searchdialogbase.py | File | 5.73 KB | 0644 |
|
test_searchdialogbase.pyc | File | 6.87 KB | 0644 |
|
test_searchdialogbase.pyo | File | 6.87 KB | 0644 |
|
test_searchengine.py | File | 11.22 KB | 0644 |
|
test_searchengine.pyc | File | 12.81 KB | 0644 |
|
test_searchengine.pyo | File | 12.81 KB | 0644 |
|
test_text.py | File | 6.59 KB | 0644 |
|
test_text.pyc | File | 8.2 KB | 0644 |
|
test_text.pyo | File | 8.2 KB | 0644 |
|
test_textview.py | File | 2.74 KB | 0644 |
|
test_textview.pyc | File | 4.6 KB | 0644 |
|
test_textview.pyo | File | 4.6 KB | 0644 |
|
test_warning.py | File | 2.69 KB | 0644 |
|
test_warning.pyc | File | 3.31 KB | 0644 |
|
test_warning.pyo | File | 3.31 KB | 0644 |
|
test_widgetredir.py | File | 4.08 KB | 0644 |
|
test_widgetredir.pyc | File | 6.49 KB | 0644 |
|
test_widgetredir.pyo | File | 6.49 KB | 0644 |
|