From b6f009e79e5c99f45cc447a52698f678b1a79b60 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Fri, 2 Sep 2016 18:21:39 +0200 Subject: [PATCH] Fix identconflict handling See #495 --- vdirsyncer/sync.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/vdirsyncer/sync.py b/vdirsyncer/sync.py index 9757056..ee6d84a 100644 --- a/vdirsyncer/sync.py +++ b/vdirsyncer/sync.py @@ -54,9 +54,9 @@ class IdentConflict(SyncError): @hrefs.setter def hrefs(self, val): - val = set(val) - assert len(val) > 1 - self._hrefs = val + new_val = set(val) + assert len(new_val) > 1, val + self._hrefs = new_val class StorageEmpty(SyncError): @@ -98,10 +98,11 @@ class StorageSyncer(object): self.idents = {} def _store_props(ident, props): - if self.idents.setdefault(ident, props) is not props: + new_props = self.idents.setdefault(ident, props) + if new_props is not props: raise IdentConflict(storage=self.storage, - hrefs=[self.idents[ident]['href'], - href]) + hrefs=[new_props['href'], + props['href']]) if ident in self.status: # Necessary if item's href changes.