コード例 #1
0
ファイル: tdb_test.py プロジェクト: fkautz/cmusv-practicum
 def testShadowingArray(self):
     outer = tdb._ChainedMap()
     inner = tdb._ChainedMap(outer)
     outer.set(('params', 'foo'), 'bar')
     inner.set(('params', 'foo'), 'baz')
     self.assertEquals(inner.get(('params', 'foo')), 'baz')
     self.assertEquals(outer.get(('params', 'foo')), 'bar')
     # Setting in outer is visible to inner
     outer.set(('params', 'yab'), 'dab')
     self.assertEquals(inner.get('params'), {'foo': 'baz', 'yab': 'dab'})
コード例 #2
0
ファイル: tdb_test.py プロジェクト: fkautz/cmusv-practicum
 def testMismatchedChild(self):
     '''Test that any setting of an inner scope's value checks the outer
     scope to make sure it's a leaf.'''
     outer = tdb._ChainedMap()
     inner = tdb._ChainedMap(outer)
     outer.set(('params', 'foo'), 'bar')
     self.assertRaises(tdb.MapError, inner.set, 'params', 'baz')
     outer.set('xparams', 'bar')
     self.assertRaises(tdb.MapError, inner.set, ('xparams', 'foo'), 'baz')
     outer.set(('foo', 'bar', 'baz'), 'foo')
     self.assertRaises(tdb.MapError, inner.set, ('foo', 'bar'), 'baz')
     outer.set(('fee', 'bar'), 'foo')
     self.assertRaises(tdb.MapError, inner.set, ('fee', 'bar', 'baz'), 'baz')
コード例 #3
0
ファイル: tdb_test.py プロジェクト: fkautz/cmusv-practicum
 def testMismatchedParent2(self):
     outer = tdb._ChainedMap()
     inner = tdb._ChainedMap(outer)
     inner.set(('xparams', 'foo'), 'bar')
     outer.set('xparams', 'baz')
     # see testMismatchedParent: it's a bug that this doesn't
     # raise tdb.MapError. But the 'get' does raise it.
     self.assertRaises(tdb.MapError, inner.get, 'xparams')
     inner.set(('yparams', 'foo', 'bar', 'baz'), 'foo')
     outer.set(('yparams', 'foo', 'bar'), 'foo')
     self.assertRaises(tdb.MapError, inner.get, 'yparams')
     inner.set(('zparams', 'foo', 'bar'), 'foo')
     outer.set(('zparams', 'foo', 'bar', 'baz'), 'foo')
     self.assertRaises(tdb.MapError, inner.get, 'zparams')
コード例 #4
0
ファイル: tdb_test.py プロジェクト: fkautz/cmusv-practicum
 def testCombine(self):
     outer = tdb._ChainedMap()
     inner = tdb._ChainedMap(outer)
     inner.set(('params', 'doo', 'foo'), 'baz')
     inner.set(('params', 'doo', 'dum'), 'foo')
     inner.set(('params', 'dee'), 'bax')
     outer.set(('params', 'fip'), 'foo')
     self.assertEquals(inner.get('params'), {'fip': 'foo',
                                             'doo': {'foo': 'baz', 'dum': 'foo'},
                                             'dee': 'bax'})
     outer.set(('params', 'doo', 'foo'), 'bar') # shadowed
     outer.set(('params', 'doo', 'fee'), 'bar') # new
     self.assertEquals(inner.get('params'), {'fip': 'foo',
                                             'doo': {'fee': 'bar', 'foo': 'baz', 'dum': 'foo'},
                                             'dee': 'bax'})
コード例 #5
0
ファイル: tdb_test.py プロジェクト: fkautz/cmusv-practicum
 def testShadowing(self):
     '''Test that shadowing works correctly'''
     outer = tdb._ChainedMap()
     outer.set('foo', 'bar')
     self.assertEquals(outer.get('foo'), 'bar')
     inner = tdb._ChainedMap(outer)
     # Before inner overrides, it inherits
     self.assertEquals(inner.get('foo'), 'bar')
     # Now it's overridden
     inner.set('foo', 'baz')
     self.assertEquals(outer.get('foo'), 'bar')
     self.assertEquals(inner.get('foo'), 'baz')
     # Likewise a tree.
     m3 = tdb._ChainedMap(outer)
     m3.set('foo', 'yab')
     self.assertEquals(outer.get('foo'), 'bar')
     self.assertEquals(inner.get('foo'), 'baz')
     self.assertEquals(m3.get('foo'), 'yab')