Commit graph

693 commits

Author SHA1 Message Date
Hugo Osvaldo Barrera
f3714fc493 Add type hints and configure mypy
Configure mypy as a pre-commit hook and add all type hints necessary for
mypy to pass.

There's still more work to be done here typing a lot more code, but this
provides a clear starting point.
2021-08-03 19:23:37 +02:00
Hugo Osvaldo Barrera
7b493416f7
Merge pull request #920 from pimutils/meta_delete
metasync: use None as no-value and delete missing values on syncing
2021-07-26 13:07:45 +02:00
Hugo Osvaldo Barrera
5b8f00e720 Sort imports 2021-07-25 18:35:47 +02:00
Hugo Osvaldo Barrera
7379a96f73 Skip test on unsupported servers 2021-07-23 20:27:34 +02:00
Дилян Палаузов
c0ccb3d1aa metasync: use None as no-value and delete missing values on syncing
- change the interface of Storage.get_meta() and .set_meta()
  to use '' as the empty value and None as missing value.

- When a property is missing (e.g calendar-color was removed)
  in the filesystem storage delete the 'color' file, and
  in the WebDAV storage issue propertyupdate/remove call.

- remove the property from [status]/[pair]/[collection].metadata

I have adjusted, but not run the test suite.  On the other side
I tested on real system: source is CalDAV - destination is filesystem;
and source is CalDAV, destination is CalDAV (another account)
2021-07-23 19:07:02 +02:00
Hugo Osvaldo Barrera
71879045e4 Tidy up test collection creation
- No need to empty collections, they're generated with a UUID and should
  always be empty (the code to empty them does not actually run in CI
  right now).
- Move deletion code to _after_ the yield, since that's the order in
  which things happen.
- Delete all collections asynchronously.
2021-06-27 13:16:31 +02:00
Hugo Osvaldo Barrera
17f422c1b7 Auto-delete test containers 2021-06-26 19:59:56 +02:00
Hugo Osvaldo Barrera
ef2419efa9 Avoid running bogus tests with Fastmail
The fix that disabled VTODO tests accidentally ran all other tests twice
for this storage.

This wasn't picked up earlier since Fastmail is not currently running on
CI.
2021-06-26 18:12:54 +02:00
Hugo Osvaldo Barrera
2eff8e08e1 Fix breakage in Fastmail tests
Some code that wasn't updated with the switch to asyncio.
2021-06-26 18:12:22 +02:00
Hugo Osvaldo Barrera
1a1f6f0788 Initial async support
Add asyncio to the storage backends and most of the codebase. A lot of
it merely uses asyncio APIs, but still doesn't actually run several
things concurrently internally. Further improvements will be added on
top of these changes

Thanks to  Thomas Grainger (@graingert) for a few useful pointers
related to asyncio.
2021-06-26 13:40:35 +02:00
Hugo Osvaldo Barrera
623c0537e1 Update test 2021-06-26 13:02:41 +02:00
Hugo Osvaldo Barrera
4930b5f389 Drop multithreading support
This is mainly in preparation to moving to an async architecture.
2021-06-26 13:02:41 +02:00
Hugo Osvaldo Barrera
1f6cc6f8be Fix SSL tests failing due to old weak MDs
Had to drop pytest-localserver, since it's broken and upstream is gone.
2021-06-20 18:49:02 +02:00
Hugo Osvaldo Barrera
29528123a3 Add a command to print the current config
This is intended to be used by external tools and integrations (such as
daemons which trigger `vdirsyncer` when there's a change in a
collection).
2021-06-16 19:03:50 +02:00
Hugo Osvaldo Barrera
5e36ca1334 Optimize another very slow test 2021-06-12 23:49:23 +02:00
Hugo Osvaldo Barrera
2e4fc7c65a Drop unecessary hypothesis usage
This adds A LOT of time to test execution, for little benefit. While
having random data is good, in reality, most of it was just numbers, and
we rarely got very diverse data.

These hand-picked samples are as good to catch any regressions or issues
with servers.
2021-06-12 18:32:05 +02:00
Hugo Osvaldo Barrera
299c699cb9 Manage test DAV servers as fixtures
Rather than require manually starting them before tests, manage them as
fixtures an initialise/destroy them as needed.
2021-06-12 16:28:24 +02:00
Hugo Osvaldo Barrera
6c80293a98 Mark failing baikal tests as xfail 2021-06-12 13:26:01 +02:00
Hugo Osvaldo Barrera
a9fa61040f Tidy up some collection initializations 2021-06-12 13:23:54 +02:00
Hugo Osvaldo Barrera
eec142ac15 Drop mysteryshack support
It's been unmaintained for years, so no point in keeping track of
compatibility.
2021-06-12 12:06:07 +02:00
Hugo Osvaldo Barrera
91ffb931e1 Move baikal out-of-repo too 2021-06-12 12:06:07 +02:00
Hugo Osvaldo Barrera
bba9d43caf Remove empty install files 2021-06-12 12:06:03 +02:00
Hugo Osvaldo Barrera
d747977af2 Use externally-built containers for test servers
This speeds up CI by avoiding a rebuild of these container on each run.
2021-06-12 10:59:44 +02:00
Hugo Osvaldo Barrera
0e47775ce3 Remove unused submodules
These submodules were used to bootstrap local test servers for running
integration tests.

We'll be reusing that codebase inside docker containers, but don't want
the containers built for each push to this repo -- that'll happen in a
separate repository.
2021-06-12 10:59:44 +02:00
Hugo Osvaldo Barrera
d6c1b1847c Fix a few linting errors 2021-06-12 10:59:44 +02:00
Bernhard Reiter
9b5e01ab38
Improve storage/test_filesystem
with one additional test and fixing of the documentation.
2021-05-20 12:50:05 +02:00
Bernhard Reiter
804b9f0429
Add tests to filesystem storage for file ignorance
that ignore .tmp files even when fileext is empty.
Prepares to make the filesystem storage more universal as part of #881 .
2021-05-19 17:40:04 +02:00
Hugo Osvaldo Barrera
d2d41e5df1 Use black to auto-format the codebase 2021-05-06 19:28:54 +02:00
Hugo Osvaldo Barrera
fdc12d561c Update tests to work with hypothesis 6 2021-04-07 21:45:41 +02:00
Hugo Osvaldo Barrera
2685f8db68 Merge master into dav_default_ns 2021-04-07 08:42:29 +02:00
Hugo Osvaldo Barrera
2161de30d0 Avoid docker-compose
The way it handles docker networks breaks builds.
2021-04-06 19:53:00 +02:00
Hugo Osvaldo Barrera
255ea8f9bf This comparison actually does something 2021-04-05 23:28:39 +02:00
Hugo Osvaldo Barrera
5ed9c821b8 This should work, right?
It's embarrassing that I didn't come up with something so simple before.
2021-04-05 23:28:39 +02:00
Hugo Osvaldo Barrera
53878f001a Horrible, nasty hack 2021-04-05 23:28:39 +02:00
Дилян Палаузов
bf67af609e Substitute the d: prefix for the DAV: namespace with no prefix (default namespace) 2021-03-09 22:23:12 +02:00
Hugo Osvaldo Barrera
14deb20ce5 Merge remote-tracking branch 'origin/master' into next 2020-06-10 21:10:02 +02:00
Hugo Osvaldo Barrera
1031b07349 Fix test failures that ONLY happen on master 2020-06-09 17:04:22 +02:00
Hugo Osvaldo Barrera
3eb9ce5ae4 Add compatibility with latest click 2020-06-09 14:45:02 +02:00
Hugo Osvaldo Barrera
b1b4dd92fe Sort imports
I don't want to ever have to sort imports again. It's a poor use of
developer time. Automate this with a pre-commit hook, and check this on
CI.

Developers: I suggest you configure your editor to use
`reorder_python_imports`. It uses the standard sorting, and detects
first/third party libs well.
2020-06-09 14:34:45 +02:00
Hugo Osvaldo Barrera
9cb1f8d704 Drop support for Python 3.5 and 3.6 2020-06-09 14:33:14 +02:00
Hugo Osvaldo Barrera
53331fedee Skip unsupported radicale test 2020-06-09 10:42:14 +02:00
Hugo Osvaldo Barrera
88f2cd5b53 Skip VTODO items for Fastmail
See #824
2020-06-09 10:42:14 +02:00
Hugo Osvaldo Barrera
4f894e04dd Empty noop script 2020-06-09 10:42:14 +02:00
Hugo Osvaldo Barrera
6c6da2f613 Test baikal using docker 2020-06-09 09:49:18 +02:00
Hugo Osvaldo Barrera
b0d8fd34dc Test radicale with docker too 2020-06-09 09:49:16 +02:00
Hugo Osvaldo Barrera
0f3b2e74c0 Test xandikos running it in docker
The main advantage here is that its dependencies are TOTALLY separate
from vdirsyncer's, keeping the runtime environment for vdirsyncer
cleaner.

It also makes testing locally not only possible, but fast and pleasant.
2020-06-09 09:49:03 +02:00
Hugo Osvaldo Barrera
3037c15a65 Use hypothesis setting load_profile to setup health check
Fixes #779
2020-06-08 19:58:35 +02:00
Amanda Hickman
c78ec6b3bd Little spelling fix (#695)
* Fixed spelling of "occurred"

* Fix spelling of occurred.

* fixed one lingering misspelling
2020-06-08 19:58:35 +02:00
Hugo Osvaldo Barrera
461e4c55b0 Update servers for Fastmail
Fixes #785
2020-06-08 18:50:03 +02:00
Hugo Osvaldo Barrera
308289febf Remove python2 leftover code 2020-06-08 18:40:33 +02:00
Hugo Osvaldo Barrera
a26d3bb58c Update hypothesis 2020-06-08 18:40:33 +02:00
Hugo Osvaldo Barrera
7e4a0be674 Upgrade flake8
Update to the latest flake8, and fix all code warnings related to that.
2020-06-08 18:40:31 +02:00
Hugo Osvaldo Barrera
9505430b83 Pin an older version of Xandikos
This is the one used back when master was last green, so let's start
with this one and gradually move up.
2020-06-08 16:33:17 +02:00
Hugo Osvaldo Barrera
cb4ba5b38c Fix linting errors
One more green checkmark! 
2020-06-08 15:39:01 +02:00
Hugo Osvaldo Barrera
65d17bdcbf Pin a known-working version of radicale too 2020-06-08 14:47:41 +02:00
Hugo Osvaldo Barrera
7c04289ed4 Pin xandikos to 0.1.0 2020-06-08 13:51:15 +02:00
Hugo Osvaldo Barrera
558da29e5e Use the syntax hypothesis accepts 2020-06-08 13:26:39 +02:00
Markus Unterwaditzer
80a42e4c6c Fixes for open_graphical_browser, fixes #754 2018-07-19 21:14:30 +02:00
Markus Unterwaditzer
97f58ddc46 Disable health checks for distro builds 2018-02-05 17:01:37 +01:00
Markus Unterwaditzer
93df284d3c Make a maintenance release of vdirsyncer, fix #708 2018-02-05 08:23:45 +01:00
Markus Unterwaditzer
9e3c231cc3 Remove Python 3.3 support (#674)
* Remove Python 3.3 support
2017-10-02 14:38:54 +02:00
Markus Unterwaditzer
1f8d1a0dc5 More tests for sync status 2017-10-01 22:29:33 +02:00
Markus Unterwaditzer
be33fd3ed3 Restructure vdirsyncer.sync 2017-10-01 21:44:14 +02:00
Markus Unterwaditzer
32d1fecbb4 New tests for sync status 2017-10-01 21:44:14 +02:00
Markus Unterwaditzer
cf8e89b5b4 Split up fetchparams tests 2017-10-01 21:44:14 +02:00
Markus Unterwaditzer
88969ae5e6 Fix xandikos git url 2017-09-24 12:02:24 +02:00
Markus Unterwaditzer
9314a93d67 Add autopep8 git commit hook (#671)
* Add autopep git hook

* Fix broken link
2017-09-23 13:55:57 +02:00
Markus Unterwaditzer
3112e6899e Remove invalid ascii chars from xml, fix #626 (#668)
* Remove invalid ascii chars from xml, fix #626

* Add changelog

* Remove unused imports

* Fix errors on older Python versions

* Fix tests
2017-09-13 20:55:03 +02:00
Markus Unterwaditzer
77658fa0b5 Disable urllib3 warnings 2017-09-11 21:25:56 +02:00
Markus Unterwaditzer
0d47e06d89 Add test re #657 2017-08-12 16:46:22 +02:00
Markus Unterwaditzer
547b327557 Attempt to fix requests tests 2017-08-02 19:55:56 +02:00
Jelmer Vernooij
01c88b514c Set defaults for CI and DETERMINISTIC_TESTS. (#653)
This makes it a bit easier to manually run individual tests.
2017-07-19 21:40:52 +02:00
Markus Unterwaditzer
56fe38fcdc UID replacement benchmark 2017-07-16 22:17:04 +02:00
Markus Unterwaditzer
37a1eb2fdb Remove remoteStorage (#648)
Fix #647
2017-07-02 18:42:55 +02:00
Markus Unterwaditzer
fa6a98ec9b Remove useless skip 2017-05-31 12:40:40 +02:00
Markus Unterwaditzer
7f80251527 Test development Radicale again (#428)
* Revert "Don't test development Radicale"

This reverts commit 7a5241101e.

* Fix Radicale test setup

* Radicale is very tolerant

* Simplify test such that output is more predictable

* Runtime version check for Radicale

* Don't create user explicitly

* stylefix

* Shorter tracebacks

Travis logs are very hard to read
2017-05-30 09:12:00 +02:00
Markus Unterwaditzer
8a5df8b802 stylefix 2017-05-02 13:56:57 +02:00
Markus Unterwaditzer
2b0492fe5e Fix etesync tests 2017-05-02 12:58:58 +02:00
Markus Unterwaditzer
cc54ed6e7c Migrate etesync db 2017-04-29 21:33:50 +02:00
Markus Unterwaditzer
09dacde3f3 owncloud update 2017-04-18 23:12:32 +02:00
Markus Unterwaditzer
3dd132e1b6 Fix import 2017-04-13 16:51:24 +02:00
Markus Unterwaditzer
0d9ec646d7 Initial etesync support (#614)
* Initial etesync support

* Optimized get()

* Bugfixes

* bugfixes

* Add writing operations

* collection creation WIP

* Fix collection creation

* tests wip

* wip

* Final touch for test setup

* actually skip tests

* Disable metadata tests

* Avoid polluting working tree

* Avoid importing wsgi-intercept if not installed

* Fix collection tests

* Proper teardown

* Skip bad test

* Remove vtodo

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Add docs

* Remove useless pkg

* Don't crash if etesync isn't imported

* Stylefix

* Fix more import errors

* More import errors

* Only run etesync on latest python

* Fix etesync check

* journal-manager migration
2017-04-13 16:27:11 +02:00
Markus Unterwaditzer
45d275f71d Disable OS X in Travis (#618)
See #617
2017-04-13 16:26:37 +02:00
Markus Unterwaditzer
b6be4b44de Fix metasync testcase 2017-04-07 12:58:42 +02:00
Markus Unterwaditzer
9a32c34e76 Switch to sqlite for sync status (#611)
* Switch to sqlite for sync status

* Add more info to changelog

* Fix transactions

* Fix transactions more
2017-03-28 10:18:24 +02:00
Markus Unterwaditzer
0e89753757 Use sqlite for sync internally (#609)
See #546
2017-03-27 00:08:23 +02:00
Markus Unterwaditzer
28f204162b Add xandikos to CI (#601)
* Add xandikos to CI

* wip

* Work around missing dependency spec

* Add xandikos to travis

* Remove auth

* Test release and devel

* Refactor xandikos setup

* Fix syntax error

* Only test xandikos-git

* Add section to supported.rst

* changelog
2017-03-22 14:40:41 +01:00
Markus Unterwaditzer
e5bc3fd6e7 Document resolution of #593 2017-03-12 13:36:12 +01:00
Markus Unterwaditzer
a285c555f0 Ignore fs collections that have subfolders (#591)
Fix #588
2017-03-09 13:40:27 +01:00
Markus Unterwaditzer
feea65ff1d Stylefix 2017-03-08 11:38:57 +01:00
Markus Unterwaditzer
bb35d7c091 Flatten mysteryshack submodule 2017-03-08 10:16:26 +01:00
Markus Unterwaditzer
a02f36f0cb Flatten davical submodule 2017-03-08 10:14:07 +01:00
Markus Unterwaditzer
c15a04a1de Expand flake8 to submodules 2017-03-08 10:08:24 +01:00
Markus Unterwaditzer
668220dbd7 Add fastmail testserver (#572) 2017-03-02 21:13:08 +01:00
Markus Unterwaditzer
47a38c0af3 Update submodules 2017-02-28 12:25:45 +01:00
Markus Unterwaditzer
76f794eef3 Module restructuring 2017-02-27 21:19:27 +01:00
Markus Unterwaditzer
6aeeb90259 Test iCloud (#567)
* Test iCloud

Fix #149
2017-02-27 19:52:24 +01:00
Markus Unterwaditzer
96e7c4da37 Fix styling 2017-02-27 00:43:21 +01:00
Markus Unterwaditzer
e457586b29 Fix bug in custom conflict_resolution
Fix #563
2017-02-26 23:24:30 +01:00
Markus Unterwaditzer
10490a12f1 Unconditionally disable HealthCheck.too_slow 2017-02-18 15:45:06 +01:00