From 1c030d40ac17454de4442865327d7903e74532fe Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Tue, 4 Oct 2016 18:41:21 +0200 Subject: [PATCH] metasync: Error on invalid conflict resolution --- vdirsyncer/metasync.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/vdirsyncer/metasync.py b/vdirsyncer/metasync.py index fc15b5e..ca85c70 100644 --- a/vdirsyncer/metasync.py +++ b/vdirsyncer/metasync.py @@ -28,12 +28,18 @@ def metasync(storage_a, storage_b, status, keys, conflict_resolution=None): def _resolve_conflict(): if a == b: status[key] = a - elif conflict_resolution is None: - raise MetaSyncConflict(key=key) elif conflict_resolution == 'a wins': _a_to_b() elif conflict_resolution == 'b wins': _b_to_a() + else: + if callable(conflict_resolution): + logger.warning('Custom commands don\'t work on metasync.') + elif conflict_resolution is not None: + raise exceptions.UserError( + 'Invalid conflict resolution setting.' + ) + raise MetaSyncConflict(key) for key in keys: a = storage_a.get_meta(key)