Retrieval-based-Voice-Conversion-WebUI
/
runtime
/Lib
/site-packages
/tkinter
/test
/test_tkinter
/test_font.py
| import unittest | |
| import tkinter | |
| from tkinter import font | |
| from test.support import requires, run_unittest, gc_collect, ALWAYS_EQ | |
| from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest | |
| requires('gui') | |
| fontname = "TkDefaultFont" | |
| class FontTest(AbstractTkTest, unittest.TestCase): | |
| def setUpClass(cls): | |
| AbstractTkTest.setUpClass.__func__(cls) | |
| try: | |
| 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_unicode_family(self): | |
| family = 'MS \u30b4\u30b7\u30c3\u30af' | |
| try: | |
| f = font.Font(root=self.root, family=family, exists=True) | |
| except tkinter.TclError: | |
| f = font.Font(root=self.root, family=family, exists=False) | |
| self.assertEqual(f.cget('family'), family) | |
| del f | |
| gc_collect() | |
| 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_equality(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) | |
| self.assertEqual(font1, font2) | |
| self.assertNotEqual(font1, font1.copy()) | |
| self.assertNotEqual(font1, 0) | |
| self.assertEqual(font1, ALWAYS_EQ) | |
| root2 = tkinter.Tk() | |
| self.addCleanup(root2.destroy) | |
| font3 = font.Font(root=root2, name=fontname, exists=True) | |
| self.assertEqual(str(font1), str(font3)) | |
| self.assertNotEqual(font1, font3) | |
| 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.assertIsInstance(families, tuple) | |
| self.assertTrue(families) | |
| for family in families: | |
| self.assertIsInstance(family, str) | |
| self.assertTrue(family) | |
| def test_names(self): | |
| names = font.names(self.root) | |
| self.assertIsInstance(names, tuple) | |
| self.assertTrue(names) | |
| for name in names: | |
| self.assertIsInstance(name, str) | |
| self.assertTrue(name) | |
| self.assertIn(fontname, names) | |
| class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase): | |
| def test_families(self): | |
| self.assertRaises(RuntimeError, font.families) | |
| root = tkinter.Tk() | |
| families = font.families() | |
| self.assertIsInstance(families, tuple) | |
| self.assertTrue(families) | |
| for family in families: | |
| self.assertIsInstance(family, str) | |
| self.assertTrue(family) | |
| root.destroy() | |
| tkinter.NoDefaultRoot() | |
| self.assertRaises(RuntimeError, font.families) | |
| def test_names(self): | |
| self.assertRaises(RuntimeError, font.names) | |
| root = tkinter.Tk() | |
| names = font.names() | |
| self.assertIsInstance(names, tuple) | |
| self.assertTrue(names) | |
| for name in names: | |
| self.assertIsInstance(name, str) | |
| self.assertTrue(name) | |
| self.assertIn(fontname, names) | |
| root.destroy() | |
| tkinter.NoDefaultRoot() | |
| self.assertRaises(RuntimeError, font.names) | |
| tests_gui = (FontTest, DefaultRootTest) | |
| if __name__ == "__main__": | |
| run_unittest(*tests_gui) | |