From 345581aa5ba2fe3b0e4288f47489b668cebfc162 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Sat, 7 Mar 2015 22:51:02 +0100 Subject: [PATCH] Add another test for full repair command --- tests/cli/test_repair.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/cli/test_repair.py b/tests/cli/test_repair.py index aaf2997..37a69a2 100644 --- a/tests/cli/test_repair.py +++ b/tests/cli/test_repair.py @@ -1,3 +1,5 @@ +from textwrap import dedent + from vdirsyncer.cli.utils import repair_storage from vdirsyncer.storage.memory import MemoryStorage from vdirsyncer.utils.vobject import Item @@ -19,3 +21,27 @@ def test_repair_uids(): uid1, uid2 = [s.get(href)[0].uid for href, etag in s.list()] assert uid1 != uid2 + + +def test_full(tmpdir, runner): + runner.write_with_general(dedent(''' + [storage foo] + type = filesystem + path = {0}/foo/ + fileext = .txt + ''').format(str(tmpdir))) + + foo = tmpdir.mkdir('foo') + + result = runner.invoke(['repair', 'foo']) + assert not result.exception + + foo.join('item.txt').write('BEGIN:VCARD\nEND:VCARD') + foo.join('toobroken.txt').write('') + + result = runner.invoke(['repair', 'foo']) + assert not result.exception + assert 'No UID' in result.output + assert 'warning: Item toobroken.txt can\'t be parsed, skipping' \ + in result.output + assert 'UID:' in foo.join('item.txt').read()