Hacker News new | ask | show | jobs
by surething 5232 days ago
Agreed. I did the following:

    def __enter__(self):
        self.original = dict(self.obj.__dict__)
        self.obj.__dict__.update(self.mocks)
        return self

    def __exit__(self, typ, val, traceback):
        self.obj.__dict__ = self.original
This doesn't perform a deep copy, but prevents modifications on self.obj.__dict__ from modifying self.original also.