[Python-checkins] cpython (merge 3.4 -> 3.5): Issue #24408: Added more tkinter.Font tests.

serhiy.storchaka python-checkins at python.org
Tue Jun 9 06:22:00 CEST 2015


https://hg.python.org/cpython/rev/24bb564469b4
changeset:   96562:24bb564469b4
branch:      3.5
parent:      96559:fd3456f85a60
parent:      96561:7e2a7f3fecdf
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Tue Jun 09 07:21:00 2015 +0300
summary:
  Issue #24408: Added more tkinter.Font tests.

files:
  Lib/tkinter/test/test_tkinter/test_font.py |  70 +++++++++-
  1 files changed, 65 insertions(+), 5 deletions(-)


diff --git a/Lib/tkinter/test/test_tkinter/test_font.py b/Lib/tkinter/test/test_tkinter/test_font.py
--- a/Lib/tkinter/test/test_tkinter/test_font.py
+++ b/Lib/tkinter/test/test_tkinter/test_font.py
@@ -6,14 +6,54 @@
 
 requires('gui')
 
+fontname = "TkDefaultFont"
+
 class FontTest(AbstractTkTest, unittest.TestCase):
 
-    def test_font_eq(self):
-        fontname = "TkDefaultFont"
+    @classmethod
+    def setUpClass(cls):
+        AbstractTkTest.setUpClass()
         try:
-            f = font.Font(root=self.root, name=fontname, exists=True)
-        except tkinter._tkinter.TclError:
-            f = font.Font(root=self.root, name=fontname, exists=False)
+            cls.font = font.Font(root=cls.root, name=fontname, exists=True)
+        except tkinter.TclError:
+            cls.font = font.Font(root=cls.root, name=fontname, exists=False)
+
+    def test_configure(self):
+        options = self.font.configure()
+        self.assertGreaterEqual(set(options),
+            {'family', 'size', 'weight', 'slant', 'underline', 'overstrike'})
+        for key in options:
+            self.assertEqual(self.font.cget(key), options[key])
+            self.assertEqual(self.font[key], options[key])
+        for key in 'family', 'weight', 'slant':
+            self.assertIsInstance(options[key], str)
+            self.assertIsInstance(self.font.cget(key), str)
+            self.assertIsInstance(self.font[key], str)
+        sizetype = int if self.wantobjects else str
+        for key in 'size', 'underline', 'overstrike':
+            self.assertIsInstance(options[key], sizetype)
+            self.assertIsInstance(self.font.cget(key), sizetype)
+            self.assertIsInstance(self.font[key], sizetype)
+
+    def test_actual(self):
+        options = self.font.actual()
+        self.assertGreaterEqual(set(options),
+            {'family', 'size', 'weight', 'slant', 'underline', 'overstrike'})
+        for key in options:
+            self.assertEqual(self.font.actual(key), options[key])
+        for key in 'family', 'weight', 'slant':
+            self.assertIsInstance(options[key], str)
+            self.assertIsInstance(self.font.actual(key), str)
+        sizetype = int if self.wantobjects else str
+        for key in 'size', 'underline', 'overstrike':
+            self.assertIsInstance(options[key], sizetype)
+            self.assertIsInstance(self.font.actual(key), sizetype)
+
+    def test_name(self):
+        self.assertEqual(self.font.name, fontname)
+        self.assertEqual(str(self.font), fontname)
+
+    def test_eq(self):
         font1 = font.Font(root=self.root, name=fontname, exists=True)
         font2 = font.Font(root=self.root, name=fontname, exists=True)
         self.assertIsNot(font1, font2)
@@ -21,6 +61,26 @@
         self.assertNotEqual(font1, font1.copy())
         self.assertNotEqual(font1, 0)
 
+    def test_measure(self):
+        self.assertIsInstance(self.font.measure('abc'), int)
+
+    def test_metrics(self):
+        metrics = self.font.metrics()
+        self.assertGreaterEqual(set(metrics),
+            {'ascent', 'descent', 'linespace', 'fixed'})
+        for key in metrics:
+            self.assertEqual(self.font.metrics(key), metrics[key])
+            self.assertIsInstance(metrics[key], int)
+            self.assertIsInstance(self.font.metrics(key), int)
+
+    def test_families(self):
+        families = font.families(self.root)
+        self.assertIn(self.font.actual('family'), families)
+
+    def test_names(self):
+        names = font.names(self.root)
+        self.assertIn(fontname, names)
+
 tests_gui = (FontTest, )
 
 if __name__ == "__main__":

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


More information about the Python-checkins mailing list