diff options
| author | Terry Jan Reedy <tjreedy@udel.edu> | 2016-06-22 04:17:28 -0400 | 
|---|---|---|
| committer | Terry Jan Reedy <tjreedy@udel.edu> | 2016-06-22 04:17:28 -0400 | 
| commit | 06a1fcbb0035c664fefc53ddb8df65cc03a537b7 (patch) | |
| tree | e50c520734698989bef5fa630ca12d9c531b9e37 | |
| parent | 6ff7a14b914dc1a456c122da75b60cbb613ab31d (diff) | |
| download | cpython-git-06a1fcbb0035c664fefc53ddb8df65cc03a537b7.tar.gz | |
Issue #27365: Allow non-ascii in idlelib/NEWS.txt, for contributor names.
Rest of patch that should not be cherry picked into 3.5.2 final.
| -rw-r--r-- | Lib/idlelib/aboutDialog.py | 2 | ||||
| -rw-r--r-- | Lib/idlelib/idle_test/test_help_about.py | 52 | ||||
| -rw-r--r-- | Lib/idlelib/textView.py | 4 | 
3 files changed, 58 insertions, 0 deletions
diff --git a/Lib/idlelib/aboutDialog.py b/Lib/idlelib/aboutDialog.py index 0457c43989..a8f75d2537 100644 --- a/Lib/idlelib/aboutDialog.py +++ b/Lib/idlelib/aboutDialog.py @@ -145,5 +145,7 @@ class AboutDialog(Toplevel):          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_help_about.py b/Lib/idlelib/idle_test/test_help_about.py new file mode 100644 index 0000000000..d0a012767a --- /dev/null +++ b/Lib/idlelib/idle_test/test_help_about.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 +    idle_readme = About.ShowIDLEAbout +    idle_news = About.ShowIDLENEWS +    # Called by the above +    display_file_text = About.display_file_text + + +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 + +    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 index 01b2d8f4ab..12ac31962d 100644 --- a/Lib/idlelib/textView.py +++ b/Lib/idlelib/textView.py @@ -76,6 +76,10 @@ def view_file(parent, title, filename, encoding=None, modal=True):          tkMessageBox.showerror(title='File Load Error',                                 message='Unable to load file %r .' % filename,                                 parent=parent) +    except UnicodeDecodeError as err: +        tkMessageBox.showerror(title='Unicode Decode Error', +                               message=str(err), +                               parent=parent)      else:          return view_text(parent, title, contents, modal)  | 
