#18357: add tests for dictview set difference. Patch by Fraser Tweedale.
diff --git a/Lib/test/test_dictviews.py b/Lib/test/test_dictviews.py
index b264ff2..30cfb93 100644
--- a/Lib/test/test_dictviews.py
+++ b/Lib/test/test_dictviews.py
@@ -112,6 +112,13 @@
self.assertEqual(d1.viewkeys() ^ set(d3.viewkeys()),
{'a', 'b', 'd', 'e'})
+ self.assertEqual(d1.viewkeys() - d1.viewkeys(), set())
+ self.assertEqual(d1.viewkeys() - d2.viewkeys(), {'a'})
+ self.assertEqual(d1.viewkeys() - d3.viewkeys(), {'a', 'b'})
+ self.assertEqual(d1.viewkeys() - set(d1.viewkeys()), set())
+ self.assertEqual(d1.viewkeys() - set(d2.viewkeys()), {'a'})
+ self.assertEqual(d1.viewkeys() - set(d3.viewkeys()), {'a', 'b'})
+
def test_items_set_operations(self):
d1 = {'a': 1, 'b': 2}
d2 = {'a': 2, 'b': 2}
@@ -144,6 +151,14 @@
self.assertEqual(d1.viewitems() ^ d3.viewitems(),
{('a', 1), ('b', 2), ('d', 4), ('e', 5)})
+ self.assertEqual(d1.viewitems() - d1.viewitems(), set())
+ self.assertEqual(d1.viewitems() - d2.viewitems(), {('a', 1)})
+ self.assertEqual(d1.viewitems() - d3.viewitems(), {('a', 1), ('b', 2)})
+ self.assertEqual(d1.viewitems() - set(d1.viewitems()), set())
+ self.assertEqual(d1.viewitems() - set(d2.viewitems()), {('a', 1)})
+ self.assertEqual(d1.viewitems() - set(d3.viewitems()),
+ {('a', 1), ('b', 2)})
+
def test_recursive_repr(self):
d = {}
d[42] = d.viewvalues()
diff --git a/Misc/ACKS b/Misc/ACKS
index 822a523..736887d 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1042,6 +1042,7 @@
Stephen Turner
Theodore Turocy
Bill Tutt
+Fraser Tweedale
Doobee R. Tzeck
Eren Türkay
Lionel Ulmer
diff --git a/Misc/NEWS b/Misc/NEWS
index af3a94b..e5432b6 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -142,6 +142,9 @@
Tests
-----
+- Issue #18357: add tests for dictview set difference.
+ Patch by Fraser Tweedale.
+
- Issue #11185: Fix test_wait4 under AIX. Patch by Sébastien Sablé.
- Issue #18094: test_uuid no more reports skipped tests as passed.