class LuceneKeyValueStoreTest(SeecrTestCase):
    def testSetDeleteGet(self):
        store = LuceneKeyValueStore(join(self.tempdir, 'kv'))
        store['1'] = 'aap'
        store['1'] = 'noot'
        store['2'] = 'mies'
        del store['2']
        self.assertEquals('noot', store['1'])
        self.assertEquals('noot', store.get('1'))

        self.assertRaises(KeyError, lambda: store['2'])
        try:
            store['3']
            self.fail()
        except KeyError, e:
            self.assertEquals("KeyError('3',)", repr(e))
        self.assertEquals(None, store.get('2'))
        self.assertEquals('mies', store.get('3', 'mies'))

        store.close()
        store = None

        store = LuceneKeyValueStore(join(self.tempdir, 'kv'))
        self.assertEquals('noot', store['1'])
        self.assertRaises(KeyError, lambda: store['2'])
 def testUnimplemented(self):
     store = LuceneKeyValueStore(join(self.tempdir, 'kv'))
     store['1'] = 'aap'
     self.assertRaises(NotImplementedError, lambda: len(store))
     self.assertRaises(NotImplementedError, lambda: iter(store))
     self.assertRaises(NotImplementedError, lambda: store.items())
     self.assertRaises(NotImplementedError, lambda: store.keys())
     self.assertRaises(NotImplementedError, lambda: store.values())
 def testCommit(self):
     store = LuceneKeyValueStore(join(self.tempdir, 'kv'))
     store['1'] = 'aap'
     store.commit()
     self.assertEqual('aap', store['1'])
 def testAllStringified(self):
     store = LuceneKeyValueStore(join(self.tempdir, 'kv'))
     store[1] = None
     self.assertEquals('None', store[1])
     self.assertEquals('None', store['1'])