diff options
Diffstat (limited to 'ick2/store.py')
-rw-r--r-- | ick2/store.py | 10 |
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)) |