Commit graph

291 commits

Author SHA1 Message Date
Markus Unterwaditzer
73e2ccf46a Create always safe hrefs
The set of safe characters was inspired by the set of safe characters in
URLs.

Fixes #229
2015-07-12 23:42:49 +02:00
Markus Unterwaditzer
d35cb1bc50 Tests for metasync 2015-07-07 16:32:47 +02:00
Markus Unterwaditzer
a007828f87 Simple metadata interface 2015-07-07 16:20:04 +02:00
Markus Unterwaditzer
2866bbde5f Support unicode collections
- DAV: Avoid re-coding if possible
- Filesystem: Convert to native strings because that's what `os.path`
  utilities expect.
2015-06-13 18:15:21 +02:00
Markus Unterwaditzer
263a45e2a5 Fix unicode URLs 2015-06-12 02:51:34 +02:00
Markus Unterwaditzer
7d41378505 dav: Fully move collection management into Discover 2015-06-04 12:18:18 +02:00
Markus Unterwaditzer
2aaeeb4e6b Merge branch 'tolerant-xml-parser' 2015-05-21 08:10:15 +02:00
Markus Unterwaditzer
209648a936 Make XML parsing more tolerant re invalid chars
Fix #207
2015-05-21 08:05:59 +02:00
Markus Unterwaditzer
4cfca383d9 Small refactor 2015-05-19 13:29:49 +02:00
Markus Unterwaditzer
a90815f5df Improve errorhandling for enduser 2015-04-28 17:57:00 +02:00
Markus Unterwaditzer
8c7af4bfc9 Disallow verify=false 2015-04-28 16:56:05 +02:00
Markus Unterwaditzer
575d270e06 Use FingerprintAdapter from req-toolbelt
Fix #187
2015-04-11 15:03:07 +02:00
Markus Unterwaditzer
fb5f093bdf Test MKCOL in Radicale 2015-03-23 17:48:47 +01:00
Markus Unterwaditzer
cbc00630f2 style fix 2015-03-08 15:35:56 +01:00
Markus Unterwaditzer
25f209c3ca Create collections explicitly 2015-03-08 15:21:36 +01:00
Markus Unterwaditzer
264023c30d Fix bug in filesystem's create_collection 2015-03-08 15:00:51 +01:00
Markus Unterwaditzer
18103afcc2 Fix tests 2015-02-26 12:13:20 +01:00
Markus Unterwaditzer
91d83d1b79 Style fixes 2015-02-09 15:45:01 +01:00
Markus Unterwaditzer
6207d9419c Don't actually tolerate this 2015-02-08 19:55:47 +01:00
Markus Unterwaditzer
ef18e78ca0 style fixes 2015-02-08 19:53:05 +01:00
Michael Adler
208453408f Introduce post_hook for filesystem storage 2015-02-08 19:37:10 +01:00
Markus Unterwaditzer
6d91c95b30 Fix broken import 2015-02-08 14:50:13 +01:00
Markus Unterwaditzer
847f3b5142 Expect test to fail on case insensitive filesystems 2015-02-08 14:47:35 +01:00
Markus Unterwaditzer
4ddcb0fef4 Retry with random filename if UID is rejected.
see #173
2015-01-30 15:14:39 +01:00
Markus Unterwaditzer
5ce0d97f91 Remove copyright headers 2015-01-21 13:02:30 +01:00
Markus Unterwaditzer
a55d1f2d03 Re-enable baikal tests 2015-01-04 13:43:53 +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
3101572440 Add note regarding radicale bug
https://github.com/Kozea/Radicale/pull/236
2014-12-17 16:54:10 +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
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
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
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
f22548000b Fix another typo and add test assertion 2014-10-19 18:36:09 +02:00
Markus Unterwaditzer
9e12e29db6 Properly deal with invalid filename characters
Fix #110
2014-09-03 20:35:31 +02:00
Markus Unterwaditzer
63c990a320 Properly remove monkeypatching in radicale tests 2014-08-21 00:56:13 +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
Thomas Weißschuh
d5e8be4979 [tests] directly monkeypatch requests Session
need for later changes
2014-08-18 19:11:07 +00: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
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
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
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
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
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
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
c66a074f36 Add GuessAuth to authentication methods 2014-05-18 23:22:55 +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
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
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
Markus Unterwaditzer
d781ac1101 Kill it with fire. 2014-05-03 21:52:05 +02:00
Markus Unterwaditzer
9616f0bbfe Move "obscure" exceptions into their own modules 2014-05-03 00:17:39 +02:00
Markus Unterwaditzer
bb579a8879 Fix some imports 2014-05-02 19:30:38 +02:00
Markus Unterwaditzer
eb386c8dac TIMEZONE issue
Some URLs such as
https://mozorg.cdn.mozilla.net/media/caldata/JapanHolidays.ics

have VTIMEZONES at the top.
2014-05-01 22:08:13 +02:00
Markus Unterwaditzer
6e55e6d2c7 Remove useless class 2014-05-01 22:08:13 +02:00
Markus Unterwaditzer
969ebb653d Fix bug with multiline values
The URL that showed this error up was

https://mozorg.cdn.mozilla.net/media/caldata/GermanHolidays.ics

with the following entry:

BEGIN:VEVENT
CREATED:20061023T132503Z
LAST-MODIFIED:20101214T141313Z
DTSTAMP:20101214T141313Z
UID:917544590
SUMMARY:Heilige drei Könige
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;BYMONTH=1
CATEGORIES:Feiertag
DTSTART;VALUE=DATE:20060106
DTEND;VALUE=DATE:20060107
DESCRIPTION:Christlicher Feiertag. Nur in Baden-Württemberg\, Bayern und
 Sachsen-Anhalt.
X-MOZ-GENERATION:1
END:VEVENT
2014-05-01 11:25:22 +02:00
Markus Unterwaditzer
a1063b0e06 Make flake8 for Python 3 shut up 2014-04-30 01:04:08 +02:00
Markus Unterwaditzer
4c492c06f3 Flake8 2014-04-30 00:41:51 +02:00
Markus Unterwaditzer
a7ca0bea97 We don't actually need this? 2014-04-16 21:17:42 +02:00
Markus Unterwaditzer
e66b43c839 Be Python 3 compatible
Not that anybody actually uses Python 3, but this helps very much with
finding obscure bugs.
2014-04-16 15:28:01 +02:00
Markus Unterwaditzer
cef68b5d09 Flake8 2014-04-16 00:45:13 +02:00
Markus Unterwaditzer
9041cfc6a9 Fix edge cases in install scripts 2014-04-15 22:01:32 +02:00
Markus Unterwaditzer
6a9de56df2 Fix more tests 2014-04-14 14:45:25 +02:00
Markus Unterwaditzer
74ec709478 Fix tests 2014-04-14 14:22:35 +02:00
Markus Unterwaditzer
0176d643c5 Move radicale back into main repo 2014-04-13 14:26:04 +02:00
Markus Unterwaditzer
2156051056 More tests 2014-04-13 10:30:23 +02:00
Markus Unterwaditzer
1050a4e157 Add test for error handling 2014-04-13 10:09:06 +02:00
Markus Unterwaditzer
720174a205 Remove debug print statement
Yes, shame on me.
2014-04-13 09:28:49 +02:00
Markus Unterwaditzer
b8faf6ffdb Simplify setup code for dav tests 2014-04-12 16:51:12 +02:00
Markus Unterwaditzer
9d9f193513 Move testserver-specific code into different repos 2014-04-12 16:23:32 +02:00
Markus Unterwaditzer
ccb4e42ce2 Polish up CaldavStorage.list 2014-04-12 14:17:37 +02:00
Markus Unterwaditzer
b6e3490980 Add test for timerange 2014-04-12 13:50:08 +02:00
Markus Unterwaditzer
65e6397806 Flake8 2014-04-11 15:49:15 +02:00
Markus Unterwaditzer
70b446e673 Merge branch 'issue29'
Conflicts:
	tests/storage/test_http.py
	vdirsyncer/storage/dav.py
2014-04-11 15:35:30 +02:00
Markus Unterwaditzer
633a7de28c Some rewrites to requests handling
Conflicts:
	tests/storage/test_http.py
	vdirsyncer/storage/dav.py
2014-04-11 15:27:31 +02:00
Markus Unterwaditzer
0c14b14f17 See #29 2014-04-11 15:03:38 +02:00
Markus Unterwaditzer
9b78360515 Use safer write to avoid corruption of data. 2014-04-09 18:36:46 +02:00
Markus Unterwaditzer
e9f1273fa8 Fix case where path exists but is not a dir 2014-04-06 13:49:08 +02:00
Markus Unterwaditzer
46910dbc4f Fix #20 2014-04-06 13:43:34 +02:00
Markus Unterwaditzer
7f01b22642 Unify terminology obj => item 2014-04-06 00:21:28 +02:00
Markus Unterwaditzer
3670bed66d Make etags always strings.
This somewhat helps with environments where ducktyping is not an option
(e.g. databases)
2014-04-05 18:29:12 +02:00
Markus Unterwaditzer
0aedeb472e Move allowed failures settings to travis 2014-04-05 12:47:28 +02:00
Markus Unterwaditzer
11cd1c7a05 Oh yeah, and... 2014-04-04 13:34:57 +02:00
Markus Unterwaditzer
58b24ad176 More tests for HTTPStorage 2014-04-04 13:32:39 +02:00
Markus Unterwaditzer
f4cdde9a52 Ability to handle missing UIDs. 2014-04-04 13:20:18 +02:00
Markus Unterwaditzer
50314418ec Remove more dead code 2014-04-02 18:10:19 +02:00
Markus Unterwaditzer
a2ec63a0e0 Remove legacy/dead code 2014-04-02 18:02:08 +02:00
Markus Unterwaditzer
d14dfcd5f8 More copyright headers
[ci skip]
2014-04-01 21:09:40 +02:00
Markus Unterwaditzer
eb4c481b3b Fix bug in tests for radicale 2014-03-29 18:05:15 +01:00
Markus Unterwaditzer
4e1371e561 Globally log requests 2014-03-29 17:52:57 +01:00
Markus Unterwaditzer
bd351242e6 Use requests transport adapters for mocking
We forgot to send auth headers...
2014-03-29 17:49:29 +01:00
Markus Unterwaditzer
36c0607b45 Loosen up tests again...
We shouldn't test item uploading functions in discovery
2014-03-29 13:27:34 +01:00
Markus Unterwaditzer
fe1d141b34 This doesn't work very well if there's a collection called "test". 2014-03-29 13:19:17 +01:00
Markus Unterwaditzer
577ab54025 Straighten tests 2014-03-29 13:04:50 +01:00
Markus Unterwaditzer
d088098e20 Setup logging again 2014-03-29 12:45:49 +01:00
Markus Unterwaditzer
64a8a682e9 Fix tests and remove silly logging 2014-03-29 12:24:01 +01:00
Markus Unterwaditzer
762a3b219b Flake 8 2014-03-28 21:44:43 +01:00
Markus Unterwaditzer
1ff6469767 Remove ugly fixture, at least make it local 2014-03-28 21:42:07 +01:00
Markus Unterwaditzer
eae0cff48f Use py.test's tmpdir fixture 2014-03-28 21:40:14 +01:00
Markus Unterwaditzer
8f1531a4b2 Fix http storage tests 2014-03-28 20:45:02 +01:00
Markus Unterwaditzer
475671f437 Less files 2014-03-26 18:11:26 +01:00
Markus Unterwaditzer
bc512d454d Fix typo 2014-03-23 10:31:06 +01:00
Markus Unterwaditzer
9e8fdcd351 More testing 2014-03-23 10:14:38 +01:00
Markus Unterwaditzer
9015414ed9 Fix wrong exception name 2014-03-22 14:34:31 +01:00
Markus Unterwaditzer
cb3255715a xprocess expects PHP to have decent performance 2014-03-22 13:36:14 +01:00
Markus Unterwaditzer
7bc6c41164 Flake 8 2014-03-21 17:43:04 +01:00