From 5f682cadb933eb094ae16addf8a6512eed78f775 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Wed, 23 Sep 2015 22:45:39 +0200 Subject: [PATCH] Make server config management generic --- .gitignore | 8 +++---- MANIFEST.in | 6 ++--- Makefile | 24 ++++++++++--------- setup.cfg | 2 +- tests/storage/__init__.py | 6 +++++ tests/storage/dav/__init__.py | 11 ++------- tests/storage/{dav => }/servers/__init__.py | 0 .../{dav => }/servers/radicale/__init__.py | 0 .../{dav => }/servers/radicale/install.sh | 0 .../{dav => }/servers/skip/__init__.py | 0 .../storage/{dav => }/servers/skip/install.sh | 0 11 files changed, 29 insertions(+), 28 deletions(-) rename tests/storage/{dav => }/servers/__init__.py (100%) rename tests/storage/{dav => }/servers/radicale/__init__.py (100%) rename tests/storage/{dav => }/servers/radicale/install.sh (100%) rename tests/storage/{dav => }/servers/skip/__init__.py (100%) rename tests/storage/{dav => }/servers/skip/install.sh (100%) diff --git a/.gitignore b/.gitignore index 9db68b4..3fe0a3e 100644 --- a/.gitignore +++ b/.gitignore @@ -10,9 +10,9 @@ env .egg .xprocess dist -tests/storage/dav/servers/* -!tests/storage/dav/servers/__init__.py -!tests/storage/dav/servers/radicale -!tests/storage/dav/servers/skip +tests/storage/servers/* +!tests/storage/servers/__init__.py +!tests/storage/servers/radicale +!tests/storage/servers/skip docs/_build/ vdirsyncer/version.py diff --git a/MANIFEST.in b/MANIFEST.in index c0c1778..24ea06d 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -6,9 +6,9 @@ include Makefile recursive-include docs * recursive-include tests * -prune tests/storage/dav/servers -recursive-include tests/storage/dav/servers/radicale * -recursive-include tests/storage/dav/servers/skip * +prune tests/storage/servers +recursive-include tests/storage/servers/radicale * +recursive-include tests/storage/servers/skip * prune docs/_build global-exclude *.py[cdo] __pycache__ *.so *.pyd diff --git a/Makefile b/Makefile index e5eda34..b74a56e 100644 --- a/Makefile +++ b/Makefile @@ -14,20 +14,22 @@ export DAV_SERVER := radicale export RADICALE_BACKEND := filesystem export REQUIREMENTS := release -export TESTSERVER_BASE := ./tests/storage/dav/servers/ +export TESTSERVER_BASE := ./tests/storage/servers/ export TRAVIS := false -install-davserver: - set -e; \ - if [ ! -d "$(TESTSERVER_BASE)$(DAV_SERVER)/" ]; then \ - git clone --depth=1 \ - https://github.com/vdirsyncer/$(DAV_SERVER)-testserver.git \ - /tmp/$(DAV_SERVER)-testserver; \ - ln -s /tmp/$(DAV_SERVER)-testserver $(TESTSERVER_BASE)$(DAV_SERVER); \ - fi - cd $(TESTSERVER_BASE)$(DAV_SERVER) && sh install.sh +install-servers: + set -ex; \ + for server in $(DAV_SERVER); do \ + if [ ! -d "$(TESTSERVER_BASE)$$server/" ]; then \ + git clone --depth=1 \ + https://github.com/vdirsyncer/$$server-testserver.git \ + /tmp/$$server-testserver; \ + ln -s /tmp/$$server-testserver $(TESTSERVER_BASE)$$server; \ + fi; \ + cd $(TESTSERVER_BASE)$$server && sh install.sh; \ + done -install-test: install-davserver +install-test: install-servers pip install pytest pytest-xprocess pytest-localserver [ $(TRAVIS) != "true" ] || pip install coverage coveralls diff --git a/setup.cfg b/setup.cfg index 686566f..fcbeaf6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,7 +2,7 @@ universal = 1 [pytest] -norecursedirs = tests/storage/dav/servers/* +norecursedirs = tests/storage/servers/* [flake8] # W503: Line break before operator diff --git a/tests/storage/__init__.py b/tests/storage/__init__.py index 26a570a..7226722 100644 --- a/tests/storage/__init__.py +++ b/tests/storage/__init__.py @@ -12,6 +12,12 @@ from .. import EVENT_TEMPLATE, TASK_TEMPLATE, VCARD_TEMPLATE, \ assert_item_equals +def get_server_mixin(server_name): + from . import __name__ as base + x = __import__('{}.servers.{}'.format(base, server_name), fromlist=['']) + return x.ServerMixin + + def format_item(item_template, uid=None): # assert that special chars are handled correctly. r = random.random() diff --git a/tests/storage/dav/__init__.py b/tests/storage/dav/__init__.py index 76bba50..3c2a8f4 100644 --- a/tests/storage/dav/__init__.py +++ b/tests/storage/dav/__init__.py @@ -10,18 +10,11 @@ from tests import assert_item_equals import vdirsyncer.exceptions as exceptions from vdirsyncer.storage.base import Item -from .. import StorageTests +from .. import StorageTests, get_server_mixin dav_server = os.environ['DAV_SERVER'] - - -def _get_server_mixin(server_name): - from . import __name__ as base - x = __import__('{}.servers.{}'.format(base, server_name), fromlist=['']) - return x.ServerMixin - -ServerMixin = _get_server_mixin(dav_server) +ServerMixin = get_server_mixin(dav_server) class DavStorageTests(ServerMixin, StorageTests): diff --git a/tests/storage/dav/servers/__init__.py b/tests/storage/servers/__init__.py similarity index 100% rename from tests/storage/dav/servers/__init__.py rename to tests/storage/servers/__init__.py diff --git a/tests/storage/dav/servers/radicale/__init__.py b/tests/storage/servers/radicale/__init__.py similarity index 100% rename from tests/storage/dav/servers/radicale/__init__.py rename to tests/storage/servers/radicale/__init__.py diff --git a/tests/storage/dav/servers/radicale/install.sh b/tests/storage/servers/radicale/install.sh similarity index 100% rename from tests/storage/dav/servers/radicale/install.sh rename to tests/storage/servers/radicale/install.sh diff --git a/tests/storage/dav/servers/skip/__init__.py b/tests/storage/servers/skip/__init__.py similarity index 100% rename from tests/storage/dav/servers/skip/__init__.py rename to tests/storage/servers/skip/__init__.py diff --git a/tests/storage/dav/servers/skip/install.sh b/tests/storage/servers/skip/install.sh similarity index 100% rename from tests/storage/dav/servers/skip/install.sh rename to tests/storage/servers/skip/install.sh