def test_immutable_unlocked(self):
     obj = attr_dict.AttrDict()
     with obj.unlocked:
         obj.foo = 42
     self.assertEqual(42, obj.foo)
 def test_immutable_create(self):
     obj = attr_dict.AttrDict()
     with self.assertRaises(RuntimeError):
         obj.foo = 42
 def test_immutable_modify(self):
     obj = attr_dict.AttrDict(foo=13)
     with self.assertRaises(RuntimeError):
         obj.foo = 42
 def test_access_magic(self):
     obj = attr_dict.AttrDict()
     with self.assertRaises(AttributeError):
         obj.__getstate__  # pylint: disable=pointless-statement
 def test_access_default(self):
     obj = attr_dict.AttrDict()
     self.assertEqual(None, obj.foo)
 def test_has_attribute(self):
     obj = attr_dict.AttrDict(foo=13)
     self.assertTrue('foo' in obj)
     self.assertFalse('bar' in obj)
 def test_construct_from_kwargs(self):
     obj = attr_dict.AttrDict(foo=13, bar=42)
     self.assertEqual(13, obj.foo)
     self.assertEqual(42, obj.bar)
 def test_construct_from_dict(self):
     initial = dict(foo=13, bar=42)
     obj = attr_dict.AttrDict(initial)
     self.assertEqual(13, obj.foo)
     self.assertEqual(42, obj.bar)