[Python-checkins] cpython (2.7): Issue #1730136: Fix comparison between a tk Font object and an object of a

serhiy.storchaka python-checkins at python.org
Thu Jul 24 16:48:33 CEST 2014


http://hg.python.org/cpython/rev/841cdb6145e9
changeset:   91830:841cdb6145e9
branch:      2.7
parent:      91824:0177d8a4e82a
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Thu Jul 24 17:48:28 2014 +0300
summary:
  Issue #1730136: Fix comparison between a tk Font object and an object of a
different type.

files:
  Lib/lib-tk/test/test_tkinter/test_font.py |  35 +++++++++++
  Lib/lib-tk/tkFont.py                      |   2 +-
  Misc/NEWS                                 |   3 +
  3 files changed, 39 insertions(+), 1 deletions(-)


diff --git a/Lib/lib-tk/test/test_tkinter/test_font.py b/Lib/lib-tk/test/test_tkinter/test_font.py
new file mode 100644
--- /dev/null
+++ b/Lib/lib-tk/test/test_tkinter/test_font.py
@@ -0,0 +1,35 @@
+import unittest
+import Tkinter
+#from Tkinter
+import tkFont as font
+from test.test_support import requires, run_unittest
+import test_ttk.support as support
+
+requires('gui')
+
+class FontTest(unittest.TestCase):
+
+    def setUp(self):
+        support.root_deiconify()
+
+    def tearDown(self):
+        support.root_withdraw()
+
+    def test_font_eq(self):
+        fontname = "TkDefaultFont"
+        try:
+            f = font.Font(name=fontname, exists=True)
+        except tkinter._tkinter.TclError:
+            f = font.Font(name=fontname, exists=False)
+        font1 = font.nametofont(fontname)
+        font2 = font.nametofont(fontname)
+        self.assertIsNot(font1, font2)
+        self.assertEqual(font1, font2)
+        self.assertNotEqual(font1, font1.copy())
+        self.assertNotEqual(font1, 0)
+        self.assertNotIn(font1, [0])
+
+tests_gui = (FontTest, )
+
+if __name__ == "__main__":
+    run_unittest(*tests_gui)
diff --git a/Lib/lib-tk/tkFont.py b/Lib/lib-tk/tkFont.py
--- a/Lib/lib-tk/tkFont.py
+++ b/Lib/lib-tk/tkFont.py
@@ -97,7 +97,7 @@
         return self.name
 
     def __eq__(self, other):
-        return self.name == other.name and isinstance(other, Font)
+        return isinstance(other, Font) and self.name == other.name
 
     def __getitem__(self, key):
         return self.cget(key)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -13,6 +13,9 @@
 Library
 -------
 
+- Issue #1730136: Fix the comparison between a tkFont.Font and an object of
+  another kind.
+
 - Issue #19884: readline: Disable the meta modifier key if stdout is not
   a terminal to not write the ANSI sequence "\033[1034h" into stdout. This
   sequence is used on some terminal (ex: TERM=xterm-256color") to enable

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


More information about the Python-checkins mailing list