e66a35e996
Merge pull request #476 from Unrud/closelockfile
...
Add option to close lock file
2016-08-11 11:43:40 +02:00
f395e256ff
Merge pull request #478 from Unrud/patch-33
...
Correctly write line endings to files
2016-08-11 11:43:18 +02:00
f6ebccec57
Merge pull request #477 from Unrud/patch-32
...
Remove etags from raw data
2016-08-11 11:41:47 +02:00
9e84b459ae
Correctly write line endings to files
...
vobject uses \r\n as line endings. Writing this to a file is not a problem on Linux and newer versions of MacOS. On Windows \r\r\n gets written to disk and on older versions of MacOS \r\r gets written to disk, because python replaces \n by the system depended line ending.
2016-08-11 05:43:18 +02:00
7a01f905de
Enable close_lock_file for tests
2016-08-11 05:20:31 +02:00
3f5dd70580
Add option to close lock file
...
Close the lock file, when no more clients are waiting.
This option is not very useful in general, but on Windows files that are opened cannot be deleted. This causes tests to fail, because the deletion of the temporary filesystem folder fails.
2016-08-11 05:19:23 +02:00
0060130c3b
Remove etags from raw data
...
Remove all etags that are directly calculated from data that's read from files.
1. They are not used anywhere (luckily).
2. Etags that are send to clients are calculated from the output of vobject's serialize method. If files are edited externally and vobject normalizes them (like wrapping long lines or replacing all line endings by \r\n), the etags that are sent to the client and the etags that are calculated from raw data will never match. If a new version of vobject is released and the formatting changes slightly, the checks will also always fail.
2016-08-11 05:05:10 +02:00
35d12ee97e
Merge pull request #472 from Unrud/patch-30
...
Use os.replace instead of os.rename
2016-08-11 04:23:56 +02:00
69386410e5
Merge pull request #473 from Unrud/tests
...
Tests
2016-08-11 04:23:23 +02:00
ac556f2bcc
Merge pull request #471 from Unrud/logger
...
Fix logger
2016-08-11 04:22:41 +02:00
4eb04e3526
PROPFIND rights checking
...
Return 404 and 403 only when it's appropriate. Don't ask users for passwords if an item just doesn't exist (e.g. mistyped URL).
2016-08-11 02:19:48 +02:00
30b3273efa
Test that the requests fails if the hook fails
2016-08-11 00:37:19 +02:00
2b45cffa0e
Test that hook gets executed when the principal collection is created
...
Test for ee5b8facda
2016-08-11 00:37:19 +02:00
080ed31d27
Test that storage is locked when hook runs
...
Test for 65af0592d3
2016-08-11 00:37:19 +02:00
952609deee
Test that hook gets executed on write accesses
2016-08-11 00:37:19 +02:00
893051645e
Test fsync
...
Enable syncing for at least one test.
Test for 5c2075cb6c
.
2016-08-11 00:37:19 +02:00
6d80b70b8c
Test that the root collection always exists
...
Test for 6c3e59fd11
2016-08-11 00:37:19 +02:00
97edacd71a
Test implicit creation of principal collection
...
Test for 81b04890f1
2016-08-11 00:37:19 +02:00
62892e3423
Test PROPPATCH
2016-08-11 00:37:13 +02:00
51bf95f00d
Don't run all tests twice
...
Only verify that custom backend loading works with a simple test.
2016-08-11 00:32:24 +02:00
c8e8993ec2
Refactor: Move common code into BaseFileSystemTest
2016-08-11 00:32:24 +02:00
e2b87d145f
Cosmetics: Don't use % for logging
2016-08-10 23:43:32 +02:00
9192a7751b
Remove incorrect argument
...
In rare cases this can cause a crash.
2016-08-10 23:41:19 +02:00
b8126f8d24
Use os.replace instead of os.rename
...
On Windows os.replace sets the MOVEFILE_REPLACE_EXISTING flag for MoveFileEx.
On POSIX it's the same as os.rename.
2016-08-10 19:26:07 +02:00
5c2075cb6c
Fix _atomic_write
2016-08-08 14:55:01 +02:00
5e5b8b844f
Cosmetics
2016-08-08 13:39:01 +02:00
1e5c9f63a0
Merge pull request #468 from Unrud/disablefsync
...
Add option to disable syncing to disk
2016-08-08 13:00:12 +02:00
c4cf918bf2
Merge pull request #470 from Unrud/readcontent
...
Read content after access checks
2016-08-08 12:57:59 +02:00
94ac2c5c8a
Merge pull request #469 from Unrud/atomicput
...
Atomic replacement of whole collection by PUT
2016-08-08 12:52:05 +02:00
a9b89be5c7
Read content after access checks
...
Unauthorized users can't fill up RAM with crap anymore.
2016-08-08 07:00:24 +02:00
f294b1cf17
Add access check to PROPFIND
2016-08-08 06:59:15 +02:00
eb15de0c5b
Test PUT with whole collection
2016-08-08 06:09:24 +02:00
68286faa63
Atomic replacement of whole collection by PUT
2016-08-08 06:08:52 +02:00
0675328a02
Replace collection in Collection.create_collection
2016-08-08 06:08:01 +02:00
6d85a731e5
Disable syncing to disk for tests
...
This reduces test time by almost 70%.
2016-08-08 05:30:16 +02:00
f5f52582a1
Add option to disable syncing to disk
...
Disabling syncing increases the risk of data loss when the system crashes or power fails. On the positive it can increase the performance to a great extent.
2016-08-08 05:20:25 +02:00
c336e0581e
Remove atomicwrites
...
Unfortunately the library doesn't support disabling of disk syncing, fortunately we only need a small subset of it's functionality which is easy to implement.
2016-08-08 05:02:36 +02:00
3c736cade8
Refactor: Move sync_directory into Collection class
...
This is not used anywhere else.
2016-08-08 04:07:01 +02:00
9f2cbb81a3
Merge pull request #466 from Unrud/fixpath
...
Set correct path for child collections
2016-08-07 18:43:41 +02:00
8f05bea8ea
Merge pull request #465 from Unrud/patch-29
...
Always use wrapper to lock collection
2016-08-07 18:42:27 +02:00
ce0a2fd01d
Test PROPFIND
...
Regression test for cfa8c7d8b4
2016-08-07 18:08:10 +02:00
cfa8c7d8b4
Set correct path for child collections
2016-08-07 17:50:31 +02:00
4f37e90e20
Some clients expect collections to end with /
...
Compatibility with InfCloud/CalDavZAP/CardDavMATE
2016-08-07 17:50:04 +02:00
ee5b8facda
Always use wrapper to lock collection
...
Also run the hook after creation of the principal collection.
2016-08-07 17:14:47 +02:00
4236077b04
Document _makedirs_synced and remove exist_ok
2016-08-06 14:08:21 +02:00
4549d1b2db
Merge pull request #462 from Unrud/durabledirs
...
Durable creation of directories and make sure that the root colleciton exists.
2016-08-06 14:02:41 +02:00
a7923008ce
Remove unused import
2016-08-06 13:29:07 +02:00
0cda9f611d
Merge pull request #463 from Unrud/atomicmove
...
Atomic MOVE
2016-08-06 13:27:38 +02:00
071a829af8
Merge pull request #453 from Unrud/delete
...
Delete atomic and durable
2016-08-06 12:52:38 +02:00
5f66d009d6
Atomic MOVE in multifilesystem
2016-08-06 05:09:06 +02:00