Commit graph

364 commits

Author SHA1 Message Date
Markus Unterwaditzer
ce2cea130c Make status_path relative to config file 2015-01-12 20:16:10 +01:00
Markus Unterwaditzer
8ab9c429cc Rewrite safe_write 2015-01-12 00:32:49 +01:00
Markus Unterwaditzer
cda763fcc5 Set verify=False if verify_fingerprint is given 2015-01-10 23:31:55 +01:00
Markus Unterwaditzer
ebedca1e85 add testcase 2015-01-10 23:01:34 +01:00
Markus Unterwaditzer
12098bcc9d Add testcase for moved hrefs. 2015-01-10 22:06:56 +01:00
Markus Unterwaditzer
a55d1f2d03 Re-enable baikal tests 2015-01-04 13:43:53 +01:00
Markus Unterwaditzer
ccc3dee28b Handle UID conflicts during sync 2015-01-03 16:30:23 +01:00
Markus Unterwaditzer
6f95870a48 Remove old config value style 2015-01-01 23:28:54 +01:00
Markus Unterwaditzer
fab29b4ecb Test collection creation explicitly 2015-01-01 22:01:24 +01:00
Markus Unterwaditzer
8e694a2a2f Don't test collection creation indirectly 2015-01-01 22:01:24 +01:00
Markus Unterwaditzer
e76fd29aec Unify collection creation 2015-01-01 22:01:23 +01:00
Markus Unterwaditzer
584e1d9d12 Add new testcase
see #144
2015-01-01 19:13:13 +01:00
Markus Unterwaditzer
b548c27384 Remove unnecessary imports 2015-01-01 13:17:04 +01:00
Markus Unterwaditzer
e21a197006 The original testcase already takes care of this. 2015-01-01 13:05:39 +01:00
Markus Unterwaditzer
bf81c769f8 Remove superfluous testcase. 2014-12-31 01:42:52 +01:00
Markus Unterwaditzer
e5d27d771d Style fixes 2014-12-30 18:13:55 +01:00
Markus Unterwaditzer
e933f6db44 Ensure updated items have the same UID (if any)
FastMail insists on this.
2014-12-30 18:07:27 +01:00
Markus Unterwaditzer
ce30ed7b8a Rewrite collections test 2014-12-30 13:23:45 +01:00
Markus Unterwaditzer
40b64139fd Add item_types test 2014-12-28 00:40:35 +01:00
Markus Unterwaditzer
9b442ebcf3 Enforce read-only attribute 2014-12-27 11:28:31 +01:00
Markus Unterwaditzer
e450baf0f8 finally silence flake8 2014-12-26 10:04:51 +01:00
Markus Unterwaditzer
37cd8aa88d Ignore error (not warning) 2014-12-26 01:23:38 +01:00
Markus Unterwaditzer
cdb25d61ec Move config parsing into cli module 2014-12-26 00:58:41 +01:00
Markus Unterwaditzer
6ef330aac5 Stricter config validation 2014-12-26 00:50:15 +01:00
Markus Unterwaditzer
f2d34f4784 Create cli.tasks 2014-12-25 23:59:02 +01:00
Markus Unterwaditzer
c2ec4cd3a3 Testsuite refactoring 2014-12-21 13:58:47 +01:00
Markus Unterwaditzer
548b397dbb Fix a refactoring bug 2014-12-20 13:50:01 +01:00
Markus Unterwaditzer
14699d3195 Fix test 2014-12-20 02:30:54 +01:00
Markus Unterwaditzer
cfe252d458 Make .cli a subpackage 2014-12-20 01:59:59 +01:00
Markus Unterwaditzer
3101572440 Add note regarding radicale bug
https://github.com/Kozea/Radicale/pull/236
2014-12-17 16:54:10 +01:00
Markus Unterwaditzer
90c9f227f3 Rename passwordeval to password_command
Fix #139
2014-12-17 14:58:26 +01:00
Markus Unterwaditzer
8266145443 Remove storage defaults from pair section
This feature didn't seem to be documented anyway.
2014-12-16 18:15:51 +01:00
Markus Unterwaditzer
2e2349c46d Add discover command 2014-12-16 17:20:02 +01:00
Markus Unterwaditzer
06a701bc10 Handle collections correctly
Fix #132

Passing the collections parameter used to mean that the storage should
append its value to the URL or path. This was a leaky abstraction for
the reasons explained in #132.

The new behavior removes this meaning from this parameter. Vdirsyncer
now maintains a cache of discovered collections.
2014-12-15 21:57:56 +01:00
Markus Unterwaditzer
1e8e931464 Clarify internal docstring 2014-12-15 21:18:37 +01:00
Markus Unterwaditzer
6b199474a6 Factor out deprecated config parsing 2014-12-15 21:12:54 +01:00
Markus Unterwaditzer
d9e4a5b767 Validate section names more strictly
This avoids any problems with status files
2014-12-15 20:52:32 +01:00
Markus Unterwaditzer
ddc47c2272 --force-delete is now a flag
Conflicts:
	tests/test_cli.py
	vdirsyncer/cli.py
2014-12-15 20:46:34 +01:00
Markus Unterwaditzer
a1f2d14c05 Refactor parse_config to use fileobject 2014-12-15 20:37:23 +01:00
Markus Unterwaditzer
e40ba55bd3 Build fixes 2014-12-11 21:51:03 +01:00
Markus Unterwaditzer
d91512d07e Even more fixes to config parsing 2014-12-11 20:12:59 +01:00
Markus Unterwaditzer
291edd7be0 Merge branch 'encodings'
Conflicts:
	vdirsyncer/storage/dav.py
2014-12-08 20:13:41 +01:00
Markus Unterwaditzer
61bf23588d Refactor! 2014-12-08 16:32:23 +01:00
Markus Unterwaditzer
3b6a2f3664 Clean up set comparison 2014-12-08 11:27:04 +01:00
Markus Unterwaditzer
ca5a9cd8f9 Stricten collection discovery test 2014-12-07 16:49:52 +01:00
Markus Unterwaditzer
741045c1be Rewrite DAV storages' encoding behavior
This is more explicit than the old behavior. See
https://github.com/Kozea/Radicale/issues/128 for the discussion that led
to this.
2014-12-07 15:11:42 +01:00
Markus Unterwaditzer
07de8a0cc4 Add another test re s.has 2014-12-06 16:40:39 +01:00
Markus Unterwaditzer
772f745832 get_multi now ignores duplicate input 2014-12-06 14:08:10 +01:00
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
Markus Unterwaditzer
d3cff80beb Fix #51 2014-05-13 19:25:16 +02:00
Markus Unterwaditzer
2656ac7a92 Small refactoring for http storage 2014-05-12 20:16:17 +02:00