summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/idle_test
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2018-02-12 19:58:26 (GMT)
committerGitHub <noreply@github.com>2018-02-12 19:58:26 (GMT)
commitf34e03ec0ea6a4cef8d966087c77e616c4a5893b (patch)
tree5667d6d784923c9ea23ee414a4645bd37e133a6f /Lib/idlelib/idle_test
parent7766b96ab80b04509bbac708ee5ecf3c1c5934fc (diff)
downloadcpython-f34e03ec0ea6a4cef8d966087c77e616c4a5893b.zip
cpython-f34e03ec0ea6a4cef8d966087c77e616c4a5893b.tar.gz
cpython-f34e03ec0ea6a4cef8d966087c77e616c4a5893b.tar.bz2
bpo-32826: Add "encoding=utf-8" to open() in idle_test/test_help_about. (GH-5639)
GUI test test_file_buttons() only looks at initial ascii-only lines, but failed on systems where open() defaults to 'ascii' because readline() internally reads and decodes far enough ahead to encounter a non-ascii character in CREDITS.txt.
Diffstat (limited to 'Lib/idlelib/idle_test')
-rw-r--r--Lib/idlelib/idle_test/test_help_about.py52
1 files changed, 27 insertions, 25 deletions
diff --git a/Lib/idlelib/idle_test/test_help_about.py b/Lib/idlelib/idle_test/test_help_about.py
index 1f67aad..9c6a834 100644
--- a/Lib/idlelib/idle_test/test_help_about.py
+++ b/Lib/idlelib/idle_test/test_help_about.py
@@ -50,35 +50,37 @@ class LiveDialogTest(unittest.TestCase):
def test_printer_buttons(self):
"""Test buttons whose commands use printer function."""
dialog = self.dialog
- button_sources = [(dialog.py_license, license),
- (dialog.py_copyright, copyright),
- (dialog.py_credits, credits)]
-
- for button, printer in button_sources:
- printer._Printer__setup()
- button.invoke()
- get = dialog._current_textview.viewframe.textframe.text.get
- self.assertEqual(printer._Printer__lines[0], get('1.0', '1.end'))
- self.assertEqual(
- printer._Printer__lines[1], get('2.0', '2.end'))
- dialog._current_textview.destroy()
+ button_sources = [(dialog.py_license, license, 'license'),
+ (dialog.py_copyright, copyright, 'copyright'),
+ (dialog.py_credits, credits, 'credits')]
+
+ for button, printer, name in button_sources:
+ with self.subTest(name=name):
+ printer._Printer__setup()
+ button.invoke()
+ get = dialog._current_textview.viewframe.textframe.text.get
+ lines = printer._Printer__lines
+ self.assertEqual(lines[0], get('1.0', '1.end'))
+ self.assertEqual(lines[1], get('2.0', '2.end'))
+ dialog._current_textview.destroy()
def test_file_buttons(self):
"""Test buttons that display files."""
dialog = self.dialog
- button_sources = [(self.dialog.readme, 'README.txt'),
- (self.dialog.idle_news, 'NEWS.txt'),
- (self.dialog.idle_credits, 'CREDITS.txt')]
-
- for button, filename in button_sources:
- button.invoke()
- fn = findfile(filename, subdir='idlelib')
- get = dialog._current_textview.viewframe.textframe.text.get
- with open(fn) as f:
- self.assertEqual(f.readline().strip(), get('1.0', '1.end'))
- f.readline()
- self.assertEqual(f.readline().strip(), get('3.0', '3.end'))
- dialog._current_textview.destroy()
+ button_sources = [(self.dialog.readme, 'README.txt', 'readme'),
+ (self.dialog.idle_news, 'NEWS.txt', 'news'),
+ (self.dialog.idle_credits, 'CREDITS.txt', 'credits')]
+
+ for button, filename, name in button_sources:
+ with self.subTest(name=name):
+ button.invoke()
+ fn = findfile(filename, subdir='idlelib')
+ get = dialog._current_textview.viewframe.textframe.text.get
+ with open(fn, encoding='utf-8') as f:
+ self.assertEqual(f.readline().strip(), get('1.0', '1.end'))
+ f.readline()
+ self.assertEqual(f.readline().strip(), get('3.0', '3.end'))
+ dialog._current_textview.destroy()
class DefaultTitleTest(unittest.TestCase):