def test_modeldict(self): d = ModelDict(foo='bar', baz__ham='spam') self.assertIn('foo', d, 'should have key "foo"') self.assertNotIn('baz', d, 'should not have key "baz"') self.assertRaises(AttributeError, d.__getattr__, 'x') self.assertTrue(hasattr(d, 'foo'), 'should not have real attr "foo"') self.assertEqual(d.foo, 'bar') self.assertEqual(d.baz__ham, 'spam') self.assertIsInstance(d.baz, ModelDict, 'should lazy resolve sub dict')
def test_expand(self): md = ModelDict(on=False, monkey__name='Pato', monkey__banana=True) md.expand() self.assertEqual(md, { 'on': False, 'monkey': { 'name': 'Pato', 'banana': True } })
def test_nested(self): md = ModelDict() md._nested = {'x': 1} self.assertEqual(md.x, 1)