def test_setattr(self): """ Test that key-value pairs can be added/changes as attributes """ from attrdict import AttrDict adict = AttrDict({'foo': 'bar'}) adict.foo = 'baz' self.assertEqual(adict.foo, 'baz') self.assertEqual(adict['foo'], 'baz') adict.lorem = 'ipsum' self.assertEqual(adict.lorem, 'ipsum') self.assertEqual(adict['lorem'], 'ipsum') adict.alpha = {'beta': 1, 'bravo': 2} self.assertEqual(adict.alpha, {'beta': 1, 'bravo': 2}) self.assertEqual(adict.alpha.beta, 1) self.assertEqual(adict['alpha'], {'beta': 1, 'bravo': 2}) # with self.assertRaises(TypeError): try: adict._no = "Won't work" except TypeError: pass # expected else: raise AssertionError("Exception not thrown")