def testArgs(self): """Test that correct exceptions happen when top-level args are not valid""" m = tdb._Map() self.assertRaises(tdb.MapError, m.set, (), 'yab') self.assertRaises(tdb.MapError, m.get, ()) self.assertRaises(tdb.MapError, m.set, 'foo', {'yab': 'dab'}) self.assertRaises(tdb.MapError, m.set, 'foo', None)
def testParams(self): """Test multiple-level put/get""" m = tdb._Map() m.set(('param', 'foo'), 'bar') self.assertEquals(m.get('param'), {'foo': 'bar'}) self.assertEquals(m.get(('param', 'foo')), 'bar') m.set(('param', 'fee', 'baz'), 'bar') m.set(('param', 'yab', 'dab'), 'doo') self.assertEquals(m.get('param'), {'fee': {'baz': 'bar'}, 'foo': 'bar', 'yab': {'dab': 'doo'}})
def testMismatch(self): '''shouldn't be able to set a value and try to access it as an array, or the reverse.''' m = tdb._Map() m.set('foo', 'bar') self.assertRaises(tdb.MapError, m.get, ('foo', 'foo')) # having both param['foo'] and param['foo']['bar'] isn't permitted m.set(('param', 'foo', 'baz'), 'bar') self.assertRaises(tdb.MapError, m.set, ('param', 'foo'), 'yab') m.set(('param', 'doo'), 'yab') self.assertRaises(tdb.MapError, m.set, ('param', 'doo', 'baz'), 'bar')
def testSimple(self): """Test simple put/get""" m = tdb._Map() # What goes in is what comes out. m.set('key', 'value') self.assertEquals(m.get('key'), 'value') # Singletons and atoms work as keys. self.assertEquals(m.get(('key')), 'value') self.assertEquals(m.get('foo'), None) # Values are write-once self.assertRaises(tdb.MapError, m.set, 'key', 'value')