Commit graph

266 commits

Author SHA1 Message Date
Markus Unterwaditzer
08c07c4be4 New config format
See #141

Basically this tries to parse config values with JSON, if that fails,
the value is interpreted as string.

I'd greatly appreciate feedback on this and #141
2014-12-02 21:03:06 +01:00
Markus Unterwaditzer
566a988f32 Remove indirection for get_storage_args fixture 2014-12-01 00:11:23 +01:00
Markus Unterwaditzer
c234bce656 "A from B" => "B/A" 2014-12-01 00:11:05 +01:00
Markus Unterwaditzer
a7878c9342 Add radicale multifilesystem to test matrix 2014-11-30 13:41:09 +01:00
Markus Unterwaditzer
069f5dfa89 Deal with Radicale 0.7
Fix #138
2014-11-26 14:19:46 +01:00
Markus Unterwaditzer
37c2467f59 Stricten testsuite 2014-11-25 15:17:51 +01:00
Markus Unterwaditzer
ca30542801 Test against more item types 2014-11-04 21:16:37 +01:00
Markus Unterwaditzer
3fccfe19e7 Enforce alphabetic import order 2014-10-29 23:03:58 +01:00
Markus Unterwaditzer
4857292b5c New testcases for vobject joining 2014-10-21 18:26:02 +02:00
Markus Unterwaditzer
6bd5bf7422 Simplify sync code
Before deletion, vdirsyncer will now check if the item changed on the
other side, and induce a re-upload if the item did change.

Because of this behavior it is now possible to remove the special-casing
if no status is available.

Fix #128
2014-10-20 17:42:45 +02:00
Markus Unterwaditzer
f22548000b Fix another typo and add test assertion 2014-10-19 18:36:09 +02:00
Markus Unterwaditzer
93d29972ec Add testcase 2014-10-16 21:40:49 +02:00
Markus Unterwaditzer
29d80b7be0 Stop using multiprocessing.dummy.Pool
- Custom job queue with workers based on threads.
- Collection discovery is now done in a separate thread. Due to the
  gained flexibility, we could do the sync actions in separate threads
  too?
- The processes parameter has been removed, the related new option is
  only available on the CLI.
2014-10-16 21:40:49 +02:00
Markus Unterwaditzer
2d62c8716b Continue syncing pairs if one pair crashes
Fix #121

Vdirsyncer used to exit as a whole when one pair failed to synchronize
due to connection errors. The new behavior actually tries to synchronize
other pairs before exiting with a nonzero status code. The old behavior
can be restored with the --fail-fast flag.
2014-10-08 22:03:04 +02:00
vimbaer
64e9ef7dc3 Renamed evalcmd -> command, use py.test's tmpdir, allow arguments in passwordeval option. 2014-09-11 23:33:44 +02:00
vimbaer
4e895b8635 Added passwordeval as an option for the general config section. If no password is provided the command provided as passwordeval will be called with username and hostname as arguments. 2014-09-10 22:03:05 +02:00
Markus Unterwaditzer
9dbb359569 Fix failing testcase 2014-09-10 16:39:25 +02:00
Markus Unterwaditzer
3bb6662e8e Add testcase 2014-09-09 17:48:36 +02:00
Markus Unterwaditzer
9e12e29db6 Properly deal with invalid filename characters
Fix #110
2014-09-03 20:35:31 +02:00
Markus Unterwaditzer
3d39526531 Allow file arg on netrc mock
On my machine, requests is trying to access it for some reason
2014-09-03 19:13:20 +02:00
Markus Unterwaditzer
686441b5ab Merge pull request #106 from untitaker/tls_fingerprints
TLS fingerprints (2.1)
2014-08-30 18:59:26 +02:00
Markus Unterwaditzer
0bc03666ba Fix dead doubleclick testcase
click.CliRunner swallowed all exceptions, also AssertionError
2014-08-30 17:06:01 +02:00
Thomas Weißschuh
fa2f7ca540 always serve something, else werkzeug blows up 2014-08-29 18:44:23 +00:00
Markus Unterwaditzer
c7e6acc0ba Rewrite get_password
Only fetching by hostname, no bruteforce algorithm for system keyring
2014-08-22 20:06:37 +02:00
Markus Unterwaditzer
f5a701a920 Create global context 2014-08-22 13:06:22 +02:00
Markus Unterwaditzer
b093989220 Refine testcase again 2014-08-21 01:26:00 +02:00
Markus Unterwaditzer
63c990a320 Properly remove monkeypatching in radicale tests 2014-08-21 00:56:13 +02:00
Markus Unterwaditzer
b909d525f8 Fix broken testcase 2014-08-21 00:51:25 +02:00
Markus Unterwaditzer
e8e55de165 Add some tests 2014-08-21 00:26:48 +02:00
Markus Unterwaditzer
5509868958 Revert "Revert "Tls fingerprints"" 2014-08-20 18:43:34 +02:00
Markus Unterwaditzer
c86ad88c96 Revert "Tls fingerprints" 2014-08-20 18:38:59 +02:00
Markus Unterwaditzer
73b8381ab8 Merge pull request #102 from t-8ch/tls_fingerprints
Tls fingerprints

Fix #100
2014-08-18 23:51:23 +02:00
Thomas Weißschuh
d5e8be4979 [tests] directly monkeypatch requests Session
need for later changes
2014-08-18 19:11:07 +00:00
Markus Unterwaditzer
bb4939bfdb Validate general section.
Fix #100
2014-08-18 18:33:58 +02:00
Markus Unterwaditzer
8ea3b82c50 Add assertion for CLI output 2014-08-18 01:03:34 +02:00
Markus Unterwaditzer
1fff7efff5 Use name from config for representing storages 2014-08-18 00:53:05 +02:00
Markus Unterwaditzer
2fd4aaead3 Add tests for prepare_auth 2014-08-15 18:29:11 +02:00
Markus Unterwaditzer
2e2082fb55 Make _create_bogus_item a fixture.
Also rename the "storage" fixture to "get_storage".
2014-08-06 22:03:30 +02:00
Markus Unterwaditzer
eb1431e5db Fix all known URL-quoting problems
- Fix #49 -- The old fix caused problems with other servers. The new
  behavior only decodes ``@`` characters.

- ``@`` is now not used when generating a new href, as some servers seem
  to have problems with it (http://sabre.io/dav/character-encoding/).
  This behavior is configurable via the ``unsafe_href_chars`` parameters
  for DAV storages, and is disabled in the testsuite for Radicale and
  ownCloud.

- Decoding of hrefs is also done twice for CarddavStorage.list because
  of owncloud/contacts#581. Vdirsyncer has behaved like that before, but
  not intentionally.

- Storages now don't share their ``_get_href`` methods anymore.
2014-08-06 16:43:23 +02:00
Markus Unterwaditzer
574869f619 ownCloud 7 now does If-Match headers right 2014-07-23 14:21:10 +02:00
Markus Unterwaditzer
838e816a65 Don't influence user's homedir 2014-07-23 12:21:03 +02:00
Markus Unterwaditzer
0f44645e78 Formatting and string type fixes 2014-07-14 15:32:59 +02:00
Markus Unterwaditzer
e2fa26a711 Add another test related to vcards vs icalendar 2014-07-14 15:15:50 +02:00
Markus Unterwaditzer
dea468fcaa Xfail vcard group test 2014-07-13 19:28:14 +02:00
Markus Unterwaditzer
c8f97b43ec Add testcase for #89 2014-07-13 19:11:06 +02:00
Markus Unterwaditzer
a79d1ddb52 Indent multiline string. 2014-07-13 18:35:08 +02:00
Markus Unterwaditzer
c750561fb8 Use more fixtures 2014-07-06 23:22:02 +02:00
Markus Unterwaditzer
97a428f3c8 Add new testcase 2014-07-06 20:43:59 +02:00
Markus Unterwaditzer
7bbc8b87da Some smaller changes to testsuite 2014-07-06 20:28:48 +02:00
Markus Unterwaditzer
0dfcefbfd3 Use PROPFIND for carddav queries because of Zimbra
Fix #83
Fix #84
2014-07-05 14:09:30 +02:00
Markus Unterwaditzer
3abebde87f Fix logging in test suite 2014-07-05 01:07:23 +02:00
Markus Unterwaditzer
6a63dcec81 Fix bug for --verbosity setting 2014-06-25 15:29:13 +02:00
Markus Unterwaditzer
8f5f7eea76 Style fixes 2014-06-22 00:48:57 +02:00
Markus Unterwaditzer
96aae16c32 Fix typo induced bug in split_collection 2014-06-22 00:21:29 +02:00
Markus Unterwaditzer
2fb58d6bcd Fix bug in keyring fetching code
Leading to infinite loop when the password is simply not there.

Also fixed some import styling again
2014-06-19 18:14:51 +02:00
Markus Unterwaditzer
289ac2cfac More tests 2014-06-19 18:14:51 +02:00
Markus Unterwaditzer
a6e2f23bbc Catch exceptions with decorator
This allows us to validate the exact output in the tests
2014-06-19 18:14:51 +02:00
Markus Unterwaditzer
65a845c7ca Add one more test 2014-06-19 18:14:51 +02:00
Markus Unterwaditzer
e9722ee63d Add test for simple usage 2014-06-19 18:14:51 +02:00
Markus Unterwaditzer
d98c4b37ba Cheap shots for test coverage 2014-06-19 18:13:45 +02:00
Markus Unterwaditzer
201c840e88 Import beautification 2014-06-19 00:07:54 +02:00
Markus Unterwaditzer
77a8cf8ff7 Fix logic 2014-06-15 12:07:22 +02:00
Markus Unterwaditzer
fadff19752 Make CaldavStorage.list faster 2014-06-15 11:15:13 +02:00
Markus Unterwaditzer
11adeaff86 split_collection: Allow multiple wrappers
Fix #78
2014-06-14 13:23:22 +02:00
Markus Unterwaditzer
5788544839 Merge pull request #77 from untitaker/readonly
Add read_only parameter
2014-06-12 15:46:57 +02:00
Markus Unterwaditzer
fc9ca4177f Add a test for HttpStorage.read_only 2014-06-12 15:14:36 +02:00
Markus Unterwaditzer
c574e746dd Split string only once 2014-06-12 14:40:25 +02:00
Markus Unterwaditzer
5028d09f61 Add read_only parameter
Just skip any updates when the storage is read-only, write to status
anyway. The change will get reverted in the next sync.

Fix #54
2014-06-12 14:24:00 +02:00
Markus Unterwaditzer
67d14cd59a Style fix 2014-06-12 13:24:01 +02:00
Markus Unterwaditzer
e25e4dc0cb Fix bug 2014-06-12 12:51:20 +02:00
Markus Unterwaditzer
cec742b9e3 Correctly handle multiline UIDs
See #74
2014-06-11 23:10:15 +02:00
Markus Unterwaditzer
179d9bc393 Move 3k compat stuff to own module 2014-06-11 19:37:39 +02:00
Markus Unterwaditzer
62340814fa Fix bug in repr of davstorage 2014-06-08 00:28:39 +02:00
Markus Unterwaditzer
9087b62647 Preserve order of parameters and properties
Since version 3.7, icalendar supports the preserving of the order of
the ICS file's parameters and properties. We can use this to avoid
unnecessary changes for .ics files managed with singlefilestorage.
2014-06-03 17:38:12 +02:00
Markus Unterwaditzer
96d55c523c Fix semicolon bug
Fix #70

Also remove multiple parameters from vcard template. Android JB for
example converts this:

    Email: lol@lol (work)
    Email: lol@lol (home)

to this:

    EMAIL;TYPE=WORK:lol@lol

which is exactly what icalendar (our parser) does too. ownCloud on the
other hand converts this:

    EMAIL;TYPE=HOME,WORK:lol@lol

to this:

    EMAIL;TYPE=HOME;TYPE=WORK:lol@lol

So at this point it does not really matter anymore whether our behavior
is RFC-conform or not.
2014-05-30 17:11:47 +02:00
Markus Unterwaditzer
f59c8d1fdf Add testcase for #70 2014-05-30 16:53:22 +02:00
Markus Unterwaditzer
fd3f6e4532 Some improvements to join_collection
Which induces a behavior change in singlefilestorage, as now
join_collection wouldn't write a wrapper if no items are given
2014-05-29 18:11:29 +02:00
Markus Unterwaditzer
55ad24db3d Add storage_name parameter on storages 2014-05-27 18:37:37 +02:00
Markus Unterwaditzer
cefaf4923a Autodiscovery
Fix #11
2014-05-27 17:42:55 +02:00
Markus Unterwaditzer
d46795bdb7 Simplify error handling 2014-05-26 23:02:24 +02:00
Markus Unterwaditzer
c1eb55c241 Copyright and contributor stuff
Fix #60
2014-05-22 12:50:43 +02:00
Markus Unterwaditzer
eece22723e Move class inspection code to utils 2014-05-19 18:32:31 +02:00
Markus Unterwaditzer
c66a074f36 Add GuessAuth to authentication methods 2014-05-18 23:22:55 +02:00
Markus Unterwaditzer
8f5fdfb2d4 Hash items resilient against formatting 2014-05-18 21:42:47 +02:00
Markus Unterwaditzer
d824882551 Add another testcase 2014-05-18 21:42:46 +02:00
Markus Unterwaditzer
7e8fa89985 First version of SingleFileStorage 2014-05-18 21:42:46 +02:00
Markus Unterwaditzer
5c6806ce97 Greatly simplify monkeypatching code for radicale 2014-05-18 19:35:08 +02:00
Markus Unterwaditzer
5fd866b41b Fix severe bug in davstorage
where (href, etag) instead of etag would be returned.

Thanks for @slavkoja for finding it.
2014-05-18 13:39:33 +02:00
Markus Unterwaditzer
91de80cef0 Also test carddav about this 2014-05-18 10:13:52 +02:00
Markus Unterwaditzer
7852dfc1a2 Also move tests for vobject to own module 2014-05-16 13:57:16 +02:00
Markus Unterwaditzer
bcf6c0612e Move vobject utils to own module 2014-05-16 13:51:55 +02:00
Markus Unterwaditzer
46f7a0cb05 Flake8 2014-05-15 15:18:25 +02:00
Markus Unterwaditzer
61ef8b3ee3 Use icalendar for parsing 2014-05-15 15:14:06 +02:00
Markus Unterwaditzer
ef1f4fd875 Remove assertion of order. 2014-05-14 16:23:39 +02:00
Markus Unterwaditzer
aff7a93582 owncloud requires UIDs 2014-05-14 16:10:33 +02:00
Markus Unterwaditzer
a33e34bc60 Flake8 2014-05-14 15:47:41 +02:00
Markus Unterwaditzer
98a9748392 Ident is now a property of Item 2014-05-14 15:40:06 +02:00
Markus Unterwaditzer
b87abfa4c0 Syncronization without UIDs! 2014-05-14 15:08:31 +02:00
Markus Unterwaditzer
cb29c2567f Allow uploading of items without UID 2014-05-14 14:48:50 +02:00
Markus Unterwaditzer
89063c5096 Add test case for #49 2014-05-13 19:26:55 +02:00