summaryrefslogtreecommitdiff
path: root/ick2/store.py
diff options
context:
space:
mode:
Diffstat (limited to 'ick2/store.py')
-rw-r--r--ick2/store.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/ick2/store.py b/ick2/store.py
index 5c01f89..2d93daf 100644
--- a/ick2/store.py
+++ b/ick2/store.py
@@ -68,10 +68,18 @@ class MemoryStore(StoreInterface):
def update(self, token, rid, obj, revision):
old_obj, old_rev = self.show(token, rid)
if old_rev != revision:
- raise ick2.Conflict(rid, old_rev, revision)
+ raise Conflict(rid, old_rev, revision)
new_rev = self._new_id()
self._set(rid, new_rev, obj)
return new_rev
def delete(self, token, rid):
del self._objs[rid]
+
+
+class Conflict(Exception):
+
+ def __init__(self, rid, expected, got):
+ super().__init__(
+ 'Update conflict for {}: expected revision {}, got {}'.format(
+ rid, expected, got))