def test_setitem(self):
     users = {'username': '******', 'display_name': 'John Doe'}
     obj = Traverser(users)
     obj.set_to_none = None
     self.assertIsNone(obj.set_to_none)
     obj.id = 123
     self.assertEqual(obj.id, 123)
     obj.roles = ['admin', 'any_user']
     self.assertEqual(obj.roles(), ['admin', 'any_user'])
 def test_no_deepcopy_causes_intended_side_effects(self):
     value = {'id': 0}
     obj = Traverser(value, deepcopy=False)
     obj.id = 1
     self.assertEqual(obj(), {'id': 1})
     self.assertEqual(value, {'id': 1})
 def test_setitem_has_no_side_effects(self):
     value = {'username': '******'}
     obj = Traverser(value)
     obj.id = 1
     self.assertEqual(obj(), {'username': '******', 'id': 1})
     self.assertEqual(value, {'username': '******'})