Make dict.keys() and dict.items() comparable to sets, using == and !=.
(PEP 3106 requires subset comparisons too, those will come later if someone
really wants them. :-)
diff --git a/Lib/test/test_dictviews.py b/Lib/test/test_dictviews.py
index 607d182..3a5fce6 100644
--- a/Lib/test/test_dictviews.py
+++ b/Lib/test/test_dictviews.py
@@ -17,18 +17,33 @@
     def test_dict_keys(self):
         d = {1: 10, "a": "ABC"}
         keys = d.keys()
-        self.assertEqual(set(keys), {1, "a"})
         self.assertEqual(len(keys), 2)
+        self.assertEqual(set(keys), {1, "a"})
+        self.assertEqual(keys, {1, "a"})
+        self.assertNotEqual(keys, {1, "a", "b"})
+        self.assertNotEqual(keys, {1, "b"})
+        self.assertNotEqual(keys, {1})
+        self.assertNotEqual(keys, 42)
         self.assert_(1 in keys)
         self.assert_("a" in keys)
         self.assert_(10 not in keys)
         self.assert_("Z" not in keys)
+        self.assertEqual(d.keys(), d.keys())
+        e = {1: 11, "a": "def"}
+        self.assertEqual(d.keys(), e.keys())
+        del e["a"]
+        self.assertNotEqual(d.keys(), e.keys())
 
     def test_dict_items(self):
         d = {1: 10, "a": "ABC"}
         items = d.items()
-        self.assertEqual(set(items), {(1, 10), ("a", "ABC")})
         self.assertEqual(len(items), 2)
+        self.assertEqual(set(items), {(1, 10), ("a", "ABC")})
+        self.assertEqual(items, {(1, 10), ("a", "ABC")})
+        self.assertNotEqual(items, {(1, 10), ("a", "ABC"), "junk"})
+        self.assertNotEqual(items, {(1, 10), ("a", "def")})
+        self.assertNotEqual(items, {(1, 10)})
+        self.assertNotEqual(items, 42)
         self.assert_((1, 10) in items)
         self.assert_(("a", "ABC") in items)
         self.assert_((1, 11) not in items)
@@ -36,6 +51,17 @@
         self.assert_(() not in items)
         self.assert_((1,) not in items)
         self.assert_((1, 2, 3) not in items)
+        self.assertEqual(d.items(), d.items())
+        e = d.copy()
+        self.assertEqual(d.items(), e.items())
+        e["a"] = "def"
+        self.assertNotEqual(d.items(), e.items())
+
+    def test_dict_mixed_keys_items(self):
+        d = {(1, 1): 11, (2, 2): 22}
+        e = {1: 1, 2: 2}
+        self.assertEqual(d.keys(), e.items())
+        self.assertNotEqual(d.items(), e.keys())
 
     def test_dict_values(self):
         d = {1: 10, "a": "ABC"}