Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
prepare for new test
  • Loading branch information
terryjreedy committed Mar 16, 2020
commit 6160e593653452e2c29c12054ff38156cc563ae4
46 changes: 36 additions & 10 deletions Lib/idlelib/idle_test/test_editor.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from collections import namedtuple
from test.support import requires
from tkinter import Tk
from idlelib.idle_test.mock_idle import Func

Editor = editor.EditorWindow

Expand Down Expand Up @@ -92,6 +93,12 @@ def test_tabwidth_8(self):
)


def insert(text, string):
text.delete('1.0', 'end')
text.insert('end', string)
text.update() # Force update for colorizer to finish.


class IndentAndNewlineTest(unittest.TestCase):

@classmethod
Expand All @@ -113,13 +120,6 @@ def tearDownClass(cls):
cls.root.destroy()
del cls.root

def insert(self, text):
t = self.window.text
t.delete('1.0', 'end')
t.insert('end', text)
# Force update for colorizer to finish.
t.update()

def test_indent_and_newline_event(self):
eq = self.assertEqual
w = self.window
Expand Down Expand Up @@ -170,25 +170,51 @@ def test_indent_and_newline_event(self):
w.prompt_last_line = ''
for test in tests:
with self.subTest(label=test.label):
self.insert(test.text)
insert(text, test.text)
text.mark_set('insert', test.mark)
nl(event=None)
eq(get('1.0', 'end'), test.expected)

# Selected text.
self.insert(' def f1(self, a, b):\n return a + b')
insert(text, ' def f1(self, a, b):\n return a + b')
text.tag_add('sel', '1.17', '1.end')
nl(None)
# Deletes selected text before adding new line.
eq(get('1.0', 'end'), ' def f1(self, a,\n \n return a + b\n')

# Preserves the whitespace in shell prompt.
w.prompt_last_line = '>>> '
self.insert('>>> \t\ta =')
insert(text, '>>> \t\ta =')
text.mark_set('insert', '1.5')
nl(None)
eq(get('1.0', 'end'), '>>> \na =\n')


class RMenuTest(unittest.TestCase):

@classmethod
def setUpClass(cls):
requires('gui')
cls.root = Tk()
cls.root.withdraw()
cls.window = Editor(root=cls.root)

@classmethod
def tearDownClass(cls):
cls.window._close()
del cls.window
cls.root.update_idletasks()
for id in cls.root.tk.call('after', 'info'):
cls.root.after_cancel(id)
cls.root.destroy()
del cls.root

class DummyRMenu:
def tk_popup(x, y): pass

def test_rclick(self):
pass


if __name__ == '__main__':
unittest.main(verbosity=2)