def testGetNonExisting(self): portal = self.layer['portal'] setRoles(portal, TEST_USER_ID, ('Manager',)) doc = self._makeOne() from collective.btrees.interfaces import IOOBTreeContainer container = IOOBTreeContainer(doc) # Getting a non-existing item. self.assertEqual(container.get('foobar'), None) self.assertEqual(container.get('foobar', 'ni'), 'ni') self.assertEqual(container.pop('none'), None) self.assertEqual(container.pop('none', 'hi'), 'hi')
def testSetdefault(self): portal = self.layer['portal'] setRoles(portal, TEST_USER_ID, ('Manager',)) doc = self._makeOne() from collective.btrees.interfaces import IOOBTreeContainer container = IOOBTreeContainer(doc) key = object() first = object() second = object() self.assertEqual(container.get(key), None) self.assertEqual(container.setdefault(key, first), first) self.assertEqual(container.get(key), first) self.assertEqual(container.setdefault(key, second), first) self.assertEqual(container.get(key), first)
def testOOBTree(self): portal = self.layer['portal'] setRoles(portal, TEST_USER_ID, ('Manager',)) doc = self._makeOne() from collective.btrees.interfaces import IOOBTreeContainer container = IOOBTreeContainer(doc) self.assertEqual(len(container.keys()), 0) key = object() value = object() self.assertEqual(container.get(key), None) container.insert(key, value) self.assertEqual(container.get(key), value) self.assertEqual(list(container.items()), [(key, value)]) container.clear() self.assertEqual(list(container.keys()), [])
def testItems_keys_values_and_iterators(self): portal = self.layer['portal'] setRoles(portal, TEST_USER_ID, ('Manager',)) doc = self._makeOne() from collective.btrees.interfaces import IOOBTreeContainer container = IOOBTreeContainer(doc) self.assertEqual(len(container.keys()), 0) key = object() value = object() container.insert(key, value) self.assertEqual(container.get(key), value) self.assertEqual(len(container.items()), 1) self.assertEqual(len(container.keys()), 1) self.assertEqual(len(container.values()), 1) self.assertEqual(list(container.items()), [(key, value)]) self.assertEqual(list(container.keys()), [key]) self.assertEqual(list(container.values()), [value]) # Test the iterators. item_iterator = container.iteritems() self.assertEqual(item_iterator.next(), (key, value)) self.assertRaises(StopIteration, item_iterator.next) key_iterator = container.iterkeys() self.assertEqual(key_iterator.next(), key) self.assertRaises(StopIteration, key_iterator.next) value_iterator = container.itervalues() self.assertEqual(value_iterator.next(), value) self.assertRaises(StopIteration, value_iterator.next)
def testUpdate(self): portal = self.layer['portal'] setRoles(portal, TEST_USER_ID, ('Manager',)) doc = self._makeOne() from collective.btrees.interfaces import IOOBTreeContainer container = IOOBTreeContainer(doc) key1 = object() key2 = object() value1 = object() value2 = object() container.update({key1: value1, key2: value2}) self.assertEqual(container.get(key1), value1) self.assertEqual(container.get(key2), value2) # Turn it around. container.update({key1: value2, key2: value1}) self.assertEqual(container.get(key1), value2) self.assertEqual(container.get(key2), value1)