[Checkins] SVN: BTrees/branches/pure_python/ Coverage for BTrees._base.difference.

Tres Seaver cvs-admin at zope.org
Tue Dec 4 02:16:19 UTC 2012


Log message for revision 128497:
  Coverage for BTrees._base.difference.

Changed:
  _U  BTrees/branches/pure_python/
  U   BTrees/branches/pure_python/BTrees/tests/test__base.py

-=-
Modified: BTrees/branches/pure_python/BTrees/tests/test__base.py
===================================================================
--- BTrees/branches/pure_python/BTrees/tests/test__base.py	2012-12-04 02:16:18 UTC (rev 128496)
+++ BTrees/branches/pure_python/BTrees/tests/test__base.py	2012-12-04 02:16:19 UTC (rev 128497)
@@ -2426,14 +2426,56 @@
         return difference(*args, **kw)
 
     def test_lhs_none(self):
-        rhs = self._makeSet(('a', 'b', 'c'))
+        rhs = self._makeSet('a', 'b', 'c')
         self.assertEqual(self._callFUT(rhs.__class__, None, rhs), None)
 
     def test_rhs_none(self):
-        lhs = self._makeSet(('a', 'b', 'c'))
+        lhs = self._makeSet('a', 'b', 'c')
         self.assertEqual(self._callFUT(lhs.__class__, lhs, None), lhs)
 
+    def test_both_sets_rhs_empty(self):
+        lhs = self._makeSet('a', 'b', 'c')
+        rhs = self._makeSet()
+        diff = self._callFUT(lhs.__class__, lhs, rhs)
+        self.assertEqual(list(diff), list(lhs))
 
+    def test_both_sets_lhs_empty(self):
+        lhs = self._makeSet()
+        rhs = self._makeSet('a', 'b', 'c')
+        diff = self._callFUT(lhs.__class__, lhs, rhs)
+        self.assertEqual(list(diff), list(lhs))
+
+    def test_lhs_set_rhs_mapping(self):
+        lhs = self._makeSet('a', 'b', 'c')
+        rhs = self._makeMapping({'a': 13, 'b': 12})
+        diff = self._callFUT(lhs.__class__, lhs, rhs)
+        self.assertEqual(list(diff), ['c'])
+
+    def test_lhs_mapping_rhs_set(self):
+        lhs = self._makeMapping({'a': 13, 'b': 12, 'c': 11})
+        rhs = self._makeSet('a', 'b')
+        diff = self._callFUT(lhs.__class__, lhs, rhs)
+        self.assertEqual(list(diff), ['c'])
+        self.assertEqual(diff['c'], 11)
+
+    def test_both_mappings_rhs_empty(self):
+        lhs = self._makeMapping({'a': 13, 'b': 12, 'c': 11})
+        rhs = self._makeMapping({})
+        diff = self._callFUT(lhs.__class__, lhs, rhs)
+        self.assertEqual(list(diff), ['a', 'b', 'c'])
+        self.assertEqual(diff['a'], 13)
+        self.assertEqual(diff['b'], 12)
+        self.assertEqual(diff['c'], 11)
+
+    def test_both_mappings_rhs_non_empty(self):
+        lhs = self._makeMapping({'a': 13, 'b': 12, 'c': 11})
+        rhs = self._makeMapping({'b': 22})
+        diff = self._callFUT(lhs.__class__, lhs, rhs)
+        self.assertEqual(list(diff), ['a', 'c'])
+        self.assertEqual(diff['a'], 13)
+        self.assertEqual(diff['c'], 11)
+
+
 class Test_union(unittest.TestCase, _SetObBase):
 
     def _callFUT(self, *args, **kw):
@@ -2492,12 +2534,19 @@
         self._values = []
         for k, v in sorted(source.items()):
             self._keys.append(k)
-            self._values.append(k)
+            self._values.append(v)
     def MERGE_WEIGHT(self, v, w):
         return v
     def iteritems(self):
         for k, v in zip(self._keys, self._values):
             yield k,v
+    def __iter__(self):
+        return iter(self._keys)
+    def __getitem__(self, key):
+        search = dict(zip(self._keys, self._values))
+        return search[key]
+    def __repr__(self):
+        return repr(dict(zip(self._keys, self._values)))
 _Mapping._set_type = _Set
 _Mapping._mapping_type = _Mapping
 



More information about the checkins mailing list