diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2020-12-29 10:56:55 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-29 10:56:55 (GMT) |
commit | 1df56bc0597a051c13d53514e120e9b6764185f8 (patch) | |
tree | c3dfca8059205e1a4d6193097f4066b27f794154 /Lib/tkinter/test | |
parent | 156b7f7052102ee1633a18e9a136ad8c38f66db0 (diff) | |
download | cpython-1df56bc0597a051c13d53514e120e9b6764185f8.zip cpython-1df56bc0597a051c13d53514e120e9b6764185f8.tar.gz cpython-1df56bc0597a051c13d53514e120e9b6764185f8.tar.bz2 |
bpo-42759: Fix equality comparison of Variable and Font in Tkinter (GH-23968)
Objects which belong to different Tcl interpreters are now always
different, even if they have the same name.
Diffstat (limited to 'Lib/tkinter/test')
-rw-r--r-- | Lib/tkinter/test/test_tkinter/test_font.py | 9 | ||||
-rw-r--r-- | Lib/tkinter/test/test_tkinter/test_variables.py | 14 |
2 files changed, 20 insertions, 3 deletions
diff --git a/Lib/tkinter/test/test_tkinter/test_font.py b/Lib/tkinter/test/test_tkinter/test_font.py index 0354c5f..91f9974 100644 --- a/Lib/tkinter/test/test_tkinter/test_font.py +++ b/Lib/tkinter/test/test_tkinter/test_font.py @@ -63,15 +63,22 @@ class FontTest(AbstractTkTest, unittest.TestCase): self.assertEqual(self.font.name, fontname) self.assertEqual(str(self.font), fontname) - def test_eq(self): + 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) diff --git a/Lib/tkinter/test/test_tkinter/test_variables.py b/Lib/tkinter/test/test_tkinter/test_variables.py index 63d7c21..6aebe8d 100644 --- a/Lib/tkinter/test/test_tkinter/test_variables.py +++ b/Lib/tkinter/test/test_tkinter/test_variables.py @@ -58,22 +58,32 @@ class TestVariable(TestBase): del v2 self.assertFalse(self.info_exists("name")) - def test___eq__(self): + def test_equality(self): # values doesn't matter, only class and name are checked v1 = Variable(self.root, name="abc") v2 = Variable(self.root, name="abc") self.assertIsNot(v1, v2) self.assertEqual(v1, v2) - v3 = StringVar(self.root, name="abc") + v3 = Variable(self.root, name="cba") self.assertNotEqual(v1, v3) + v4 = StringVar(self.root, name="abc") + self.assertEqual(str(v1), str(v4)) + self.assertNotEqual(v1, v4) + V = type('Variable', (), {}) self.assertNotEqual(v1, V()) self.assertNotEqual(v1, object()) self.assertEqual(v1, ALWAYS_EQ) + root2 = tkinter.Tk() + self.addCleanup(root2.destroy) + v5 = Variable(root2, name="abc") + self.assertEqual(str(v1), str(v5)) + self.assertNotEqual(v1, v5) + def test_invalid_name(self): with self.assertRaises(TypeError): Variable(self.root, name=123) |