def test_invalid_item(self): itcoll = ItemOptionDict() itcoll.add(None) self.assertRaises(ArgumentError, self.cb.upsert_multi, itcoll) self.assertRaises(ArgumentError, self.cb.upsert_multi, ItemSequence([None]))
def test_items_append(self): k = self.gen_key("itm_append") it = Item(k, "MIDDLE") itcoll = ItemOptionDict() itcoll.add(it) self.cb.upsert_multi(itcoll, format=FMT_UTF8) itcoll.add(it, fragment="_END") self.cb.append_items(itcoll, format=FMT_UTF8) self.assertEqual(it.value, "MIDDLE_END") itcoll.add(it, fragment="BEGIN_") self.cb.prepend_items(itcoll, format=FMT_UTF8) self.assertEqual(it.value, "BEGIN_MIDDLE_END") rv = self.cb.get(it.key) self.assertEqual(rv.value, "BEGIN_MIDDLE_END") # Try without a 'fragment' specifier self.assertRaises(InvalidArgumentException, self.cb.append_items, ItemSequence([it])) itcoll.add(it) self.assertRaises(InvalidArgumentException, self.cb.append_items, itcoll)
def test_items_ignorecas(self): k = self.gen_key("itm_ignorecas") it = Item(k, "a value") itcoll = ItemOptionDict() itcoll.add(it) self.cb.upsert_multi(itcoll) self.assertTrue(it.cas) # Set it again rv = self.cb.upsert(it.key, it.value) self.assertTrue(rv.cas) self.assertFalse(rv.cas == it.cas) # Should raise an error without ignore_cas self.assertRaises(KeyExistsError, self.cb.upsert_multi, itcoll) self.assertTrue(it.cas) itcoll.add(it, ignore_cas=True) self.cb.upsert_multi(itcoll) rv = self.cb.get(it.key) self.assertEqual(rv.cas, it.cas)