From 41f64e2dca708b1ec052693e8dde94833136a312 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Thu, 18 Jan 2018 23:10:53 +0100 Subject: [PATCH] Dockerize nextcloud (#704) * Dockerize nextcloud * Remove ownCloud and baikal, fix #489 * Remove branch from travis conf --- .gitmodules | 9 ----- .travis.yml | 11 ++---- CHANGELOG.rst | 1 + docs/tutorials/baikal.rst | 10 ----- docs/tutorials/index.rst | 2 - docs/tutorials/owncloud.rst | 26 ------------- scripts/make_travisconf.py | 4 +- tests/docker-compose.yml | 11 ++++++ tests/storage/servers/baikal | 1 - tests/storage/servers/nextcloud | 1 - tests/storage/servers/nextcloud/__init__.py | 41 +++++++++++++++++++++ tests/storage/servers/nextcloud/install.sh | 1 + tests/storage/servers/owncloud | 1 - 13 files changed, 59 insertions(+), 60 deletions(-) delete mode 100644 docs/tutorials/baikal.rst delete mode 100644 docs/tutorials/owncloud.rst create mode 100644 tests/docker-compose.yml delete mode 160000 tests/storage/servers/baikal delete mode 160000 tests/storage/servers/nextcloud create mode 100644 tests/storage/servers/nextcloud/__init__.py create mode 100644 tests/storage/servers/nextcloud/install.sh delete mode 160000 tests/storage/servers/owncloud diff --git a/.gitmodules b/.gitmodules index cc13351..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +0,0 @@ -[submodule "tests/storage/servers/baikal"] - path = tests/storage/servers/baikal - url = https://github.com/vdirsyncer/baikal-testserver -[submodule "tests/storage/servers/owncloud"] - path = tests/storage/servers/owncloud - url = https://github.com/vdirsyncer/owncloud-testserver -[submodule "tests/storage/servers/nextcloud"] - path = tests/storage/servers/nextcloud - url = https://github.com/vdirsyncer/nextcloud-testserver diff --git a/.travis.yml b/.travis.yml index 165f76a..09b1163 100644 --- a/.travis.yml +++ b/.travis.yml @@ -94,18 +94,10 @@ "env": "BUILD=test DAV_SERVER=xandikos REQUIREMENTS=release ", "python": "3.6" }, - { - "env": "BUILD=test DAV_SERVER=owncloud REQUIREMENTS=release ", - "python": "3.6" - }, { "env": "BUILD=test DAV_SERVER=nextcloud REQUIREMENTS=release ", "python": "3.6" }, - { - "env": "BUILD=test DAV_SERVER=baikal REQUIREMENTS=release ", - "python": "3.6" - }, { "env": "BUILD=test DAV_SERVER=davical REQUIREMENTS=release ", "if": "NOT (type IN (pull_request))", @@ -143,5 +135,8 @@ "script": [ "make -e $BUILD" ], + "services": [ + "docker" + ], "sudo": true } \ No newline at end of file diff --git a/CHANGELOG.rst b/CHANGELOG.rst index fb8ea99..4014051 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,6 +14,7 @@ Version 0.17.0 - Fix bug where collection discovery under DAV-storages would produce invalid XML. See :gh:`688`. +- ownCloud and Baikal are no longer tested. Version 0.16.3 ============== diff --git a/docs/tutorials/baikal.rst b/docs/tutorials/baikal.rst deleted file mode 100644 index 815750d..0000000 --- a/docs/tutorials/baikal.rst +++ /dev/null @@ -1,10 +0,0 @@ -====== -Baikal -====== - -Vdirsyncer is continuously tested against the latest version of Baikal_. - -- Baikal up to ``0.2.7`` also uses an old version of SabreDAV, with the same - issue as ownCloud, see :gh:`160`. This issue is fixed in later versions. - -.. _Baikal: http://baikal-server.com/ diff --git a/docs/tutorials/index.rst b/docs/tutorials/index.rst index 15904dc..6a78940 100644 --- a/docs/tutorials/index.rst +++ b/docs/tutorials/index.rst @@ -52,12 +52,10 @@ Servers .. toctree:: :maxdepth: 1 - baikal davmail fastmail google icloud nextcloud - owncloud radicale xandikos diff --git a/docs/tutorials/owncloud.rst b/docs/tutorials/owncloud.rst deleted file mode 100644 index 3121d05..0000000 --- a/docs/tutorials/owncloud.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. _owncloud_setup: - -======== -ownCloud -======== - -Vdirsyncer is continuously tested against the latest version of ownCloud_:: - - [storage cal] - type = "caldav" - url = "https://example.com/remote.php/dav/" - username = ... - password = ... - - [storage card] - type = "carddav" - url = "https://example.com/remote.php/dav/" - username = ... - password = ... - -- *Versions older than 7.0.0:* ownCloud uses SabreDAV, which had problems - detecting collisions and race-conditions. The problems were reported and are - fixed in SabreDAV's repo, and the corresponding fix is also in ownCloud since - 7.0.0. See :gh:`16` for more information. - -.. _ownCloud: https://owncloud.org/ diff --git a/scripts/make_travisconf.py b/scripts/make_travisconf.py index ba87de0..c617bc3 100644 --- a/scripts/make_travisconf.py +++ b/scripts/make_travisconf.py @@ -8,6 +8,7 @@ latest_python = "3.6" cfg = {} cfg['sudo'] = True +cfg['services'] = ['docker'] cfg['dist'] = 'trusty' cfg['language'] = 'python' cfg['cache'] = { @@ -49,8 +50,7 @@ for python, requirements in itertools.product(python_versions, dav_servers = ("radicale", "xandikos") if python == latest_python and requirements == "release": - dav_servers += ("owncloud", "nextcloud", "baikal", "davical", "icloud", - "fastmail") + dav_servers += ("nextcloud", "davical", "icloud", "fastmail") for dav_server in dav_servers: job = { diff --git a/tests/docker-compose.yml b/tests/docker-compose.yml new file mode 100644 index 0000000..c44e27c --- /dev/null +++ b/tests/docker-compose.yml @@ -0,0 +1,11 @@ +version: '2' + +services: + nextcloud: + image: nextcloud + ports: + - '8080:80' + environment: + - SQLITE_DATABASE=nextcloud + - NEXTCLOUD_ADMIN_USER=asdf + - NEXTCLOUD_ADMIN_PASSWORD=asdf diff --git a/tests/storage/servers/baikal b/tests/storage/servers/baikal deleted file mode 160000 index 6c8c379..0000000 --- a/tests/storage/servers/baikal +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6c8c379f1ee8bf4ab0ac54fc4eec3e4a6349c237 diff --git a/tests/storage/servers/nextcloud b/tests/storage/servers/nextcloud deleted file mode 160000 index 1427b0e..0000000 --- a/tests/storage/servers/nextcloud +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1427b0e8d6cf89c5876bce2dece3248822a2c147 diff --git a/tests/storage/servers/nextcloud/__init__.py b/tests/storage/servers/nextcloud/__init__.py new file mode 100644 index 0000000..a2b74e9 --- /dev/null +++ b/tests/storage/servers/nextcloud/__init__.py @@ -0,0 +1,41 @@ +import requests +import pytest + + +def is_responsive(url): + try: + requests.get(url) + return True + except Exception: + return False + + +class ServerMixin(object): + storage_class = None + wsgi_teardown = None + + @pytest.fixture(scope='session') + def nextcloud_server(self, docker_ip, docker_services): + url = 'http://{}:{}'.format(docker_ip, + docker_services.port_for('nextcloud', 80)) + docker_services.wait_until_responsive( + timeout=30.0, pause=0.1, + check=lambda: is_responsive(url) + ) + return url + + @pytest.fixture + def get_storage_args(self, nextcloud_server, item_type, + slow_create_collection): + def inner(collection='test'): + args = { + 'username': 'asdf', + 'password': 'asdf', + 'url': nextcloud_server + '/remote.php/dav/' + } + + if collection is not None: + args = slow_create_collection(self.storage_class, args, + collection) + return args + return inner diff --git a/tests/storage/servers/nextcloud/install.sh b/tests/storage/servers/nextcloud/install.sh new file mode 100644 index 0000000..020bfc1 --- /dev/null +++ b/tests/storage/servers/nextcloud/install.sh @@ -0,0 +1 @@ +pip install pytest-docker diff --git a/tests/storage/servers/owncloud b/tests/storage/servers/owncloud deleted file mode 160000 index d3cfc45..0000000 --- a/tests/storage/servers/owncloud +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d3cfc453b0b2dded90c870fd23281fb0c13d766f