Issue #5124: rename PyShell back to pyshell and patch test for 3.6

This commit is contained in:
Terry Jan Reedy 2016-06-11 02:10:59 -04:00
parent b5c43f4c01
commit 50288f964a
2 changed files with 15 additions and 13 deletions

View file

@ -5,8 +5,9 @@ Edit modules have their own test files files
from test.support import requires from test.support import requires
requires('gui') requires('gui')
import tkinter as tk import tkinter as tk
from tkinter import ttk
import unittest import unittest
from idlelib import PyShell from idlelib import pyshell
class PasteTest(unittest.TestCase): class PasteTest(unittest.TestCase):
'''Test pasting into widgets that allow pasting. '''Test pasting into widgets that allow pasting.
@ -16,16 +17,17 @@ class PasteTest(unittest.TestCase):
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
cls.root = root = tk.Tk() cls.root = root = tk.Tk()
PyShell.fix_x11_paste(root) pyshell.fix_x11_paste(root)
cls.text = tk.Text(root) cls.text = tk.Text(root)
cls.entry = tk.Entry(root) cls.entry = tk.Entry(root)
cls.tentry = ttk.Entry(root)
cls.spin = tk.Spinbox(root) cls.spin = tk.Spinbox(root)
root.clipboard_clear() root.clipboard_clear()
root.clipboard_append('two') root.clipboard_append('two')
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
del cls.text, cls.entry, cls.spin del cls.text, cls.entry, cls.tentry
cls.root.clipboard_clear() cls.root.clipboard_clear()
cls.root.update_idletasks() cls.root.update_idletasks()
cls.root.destroy() cls.root.destroy()
@ -43,14 +45,14 @@ class PasteTest(unittest.TestCase):
def test_paste_entry(self): def test_paste_entry(self):
"Test pasting into an entry with and without a selection." "Test pasting into an entry with and without a selection."
# On 3.6, generated <<Paste>> fails without empty select range # Generated <<Paste>> fails for tk entry without empty select
# for 'no selection'. Live widget works fine. # range for 'no selection'. Live widget works fine.
entry = self.entry for entry in self.entry, self.tentry:
for end, ans in (0, 'onetwo'), ('end', 'two'): for end, ans in (0, 'onetwo'), ('end', 'two'):
with self.subTest(entry=entry, end=end, ans=ans): with self.subTest(entry=entry, end=end, ans=ans):
entry.delete(0, 'end') entry.delete(0, 'end')
entry.insert(0, 'one') entry.insert(0, 'one')
entry.select_range(0, end) # see note entry.select_range(0, end)
entry.event_generate('<<Paste>>') entry.event_generate('<<Paste>>')
self.assertEqual(entry.get(), ans) self.assertEqual(entry.get(), ans)