[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