summaryrefslogtreecommitdiffstats
path: root/Lib/tkinter/test/test_tkinter/test_variables.py
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2020-12-29 11:18:26 (GMT)
committerGitHub <noreply@github.com>2020-12-29 11:18:26 (GMT)
commit578caafabe1de652a8f31dbeb8cc660e1ed725eb (patch)
tree05fdb10c03cfc1386a619d536c743263132336e6 /Lib/tkinter/test/test_tkinter/test_variables.py
parent7bdb3e08251894b49e7893db1dc4868e2656b342 (diff)
downloadcpython-578caafabe1de652a8f31dbeb8cc660e1ed725eb.zip
cpython-578caafabe1de652a8f31dbeb8cc660e1ed725eb.tar.gz
cpython-578caafabe1de652a8f31dbeb8cc660e1ed725eb.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. (cherry picked from commit 1df56bc0597a051c13d53514e120e9b6764185f8) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Diffstat (limited to 'Lib/tkinter/test/test_tkinter/test_variables.py')
-rw-r--r--Lib/tkinter/test/test_tkinter/test_variables.py14
1 files changed, 12 insertions, 2 deletions
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)