[Python-checkins] cpython (merge 2.7 -> 2.7): merge 2.7.12 release branch

benjamin.peterson python-checkins at python.org
Wed Jun 22 02:13:55 EDT 2016


https://hg.python.org/cpython/rev/7d25a93c135f
changeset:   102123:7d25a93c135f
branch:      2.7
parent:      102120:ffe866aa86a8
parent:      102122:45d4cea97b04
user:        Benjamin Peterson <benjamin at python.org>
date:        Tue Jun 21 23:13:33 2016 -0700
summary:
  merge 2.7.12 release branch

files:
  Lib/idlelib/aboutDialog.py              |   4 +-
  Lib/idlelib/idle_test/test_helpabout.py |  52 +++++++++++++
  Lib/idlelib/textView.py                 |   4 +
  Misc/NEWS                               |   8 ++
  4 files changed, 67 insertions(+), 1 deletions(-)


diff --git a/Lib/idlelib/aboutDialog.py b/Lib/idlelib/aboutDialog.py
--- a/Lib/idlelib/aboutDialog.py
+++ b/Lib/idlelib/aboutDialog.py
@@ -129,7 +129,7 @@
         self.display_file_text('About - Readme', 'README.txt', 'ascii')
 
     def ShowIDLENEWS(self):
-        self.display_file_text('About - NEWS', 'NEWS.txt', 'ascii')
+        self.display_file_text('About - NEWS', 'NEWS.txt', 'utf-8')
 
     def display_printer_text(self, title, printer):
         printer._Printer__setup()
@@ -144,5 +144,7 @@
         self.destroy()
 
 if __name__ == '__main__':
+    import unittest
+    unittest.main('idlelib.idle_test.test_helpabout', verbosity=2, exit=False)
     from idlelib.idle_test.htest import run
     run(AboutDialog)
diff --git a/Lib/idlelib/idle_test/test_helpabout.py b/Lib/idlelib/idle_test/test_helpabout.py
new file mode 100644
--- /dev/null
+++ b/Lib/idlelib/idle_test/test_helpabout.py
@@ -0,0 +1,52 @@
+'''Test idlelib.help_about.
+
+Coverage:
+'''
+from idlelib import aboutDialog as help_about
+from idlelib import textView as textview
+from idlelib.idle_test.mock_idle import Func
+from idlelib.idle_test.mock_tk import Mbox
+import unittest
+
+About = help_about.AboutDialog
+class Dummy_about_dialog():
+    # Dummy class for testing file display functions.
+    idle_credits = About.ShowIDLECredits.im_func
+    idle_readme = About.ShowIDLEAbout.im_func
+    idle_news = About.ShowIDLENEWS.im_func
+    # Called by the above
+    display_file_text = About.display_file_text.im_func
+
+
+class DisplayFileTest(unittest.TestCase):
+    "Test that .txt files are found and properly decoded."
+    dialog = Dummy_about_dialog()
+
+    @classmethod
+    def setUpClass(cls):
+        cls.orig_mbox = textview.tkMessageBox
+        cls.orig_view = textview.view_text
+        cls.mbox = Mbox()
+        cls.view = Func()
+        textview.tkMessageBox = cls.mbox
+        textview.view_text = cls.view
+        cls.About = Dummy_about_dialog()
+
+    @classmethod
+    def tearDownClass(cls):
+        textview.tkMessageBox = cls.orig_mbox
+        textview.view_text = cls.orig_view.im_func
+
+    def test_file_isplay(self):
+        for handler in (self.dialog.idle_credits,
+                        self.dialog.idle_readme,
+                        self.dialog.idle_news):
+            self.mbox.showerror.message = ''
+            self.view.called = False
+            handler()
+            self.assertEqual(self.mbox.showerror.message, '')
+            self.assertEqual(self.view.called, True)
+
+
+if __name__ == '__main__':
+    unittest.main(verbosity=2)
diff --git a/Lib/idlelib/textView.py b/Lib/idlelib/textView.py
--- a/Lib/idlelib/textView.py
+++ b/Lib/idlelib/textView.py
@@ -79,6 +79,10 @@
         tkMessageBox.showerror(title='File Load Error',
                                message='Unable to load file %r .' % filename,
                                parent=parent)
+    except UnicodeDecodeError as err:
+        showerror(title='Unicode Decode Error',
+                  message=str(err),
+                  parent=parent)
     else:
         return view_text(parent, title, textFile.read(), modal)
 
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -35,11 +35,19 @@
   resulting links to use lowercase.  Patch by Sean Rodman, test by Kaushik
   Nadikuditi.
 
+What's New in Python 2.7.12?
+============================
+
 Build
 -----
 
 - Issue #26930: Update Windows builds to use OpenSSL 1.0.2h.
 
+IDLE
+----
+
+- Issue #27365: Fix about dialog.
+
 
 What's New in Python 2.7.12 release candidate 1?
 ================================================

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list