diff options
author | Raphaël Barrois <raphael.barrois@polytechnique.org> | 2016-04-07 00:11:16 +0200 |
---|---|---|
committer | Raphaël Barrois <raphael.barrois@polytechnique.org> | 2016-04-07 00:11:16 +0200 |
commit | a17b036d0b12a35a24864ec6fb9dee8d3d54ff03 (patch) | |
tree | 27ca2935a365dcf3096f579043769a4d7881b880 /factory | |
parent | 872718c1eb7865878ff17c8ce7dbeb004a089e40 (diff) | |
parent | f023e5a477668b8374a75c78e87d946b21a27f15 (diff) | |
download | factory-boy-a17b036d0b12a35a24864ec6fb9dee8d3d54ff03.tar factory-boy-a17b036d0b12a35a24864ec6fb9dee8d3d54ff03.tar.gz |
Merge pull request #256 from koterpillar/cyclic-definition-rescue
Don't leave AttributeBuilder in an inconsistent state on exceptions
Diffstat (limited to 'factory')
-rw-r--r-- | factory/containers.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/factory/containers.py b/factory/containers.py index d3f39c4..4961115 100644 --- a/factory/containers.py +++ b/factory/containers.py @@ -99,8 +99,10 @@ class LazyStub(object): val = self.__attrs[name] if isinstance(val, LazyValue): self.__pending.append(name) - val = val.evaluate(self, self.__containers) - last = self.__pending.pop() + try: + val = val.evaluate(self, self.__containers) + finally: + last = self.__pending.pop() assert name == last self.__values[name] = val return val |