Make server config management generic

This commit is contained in:
Markus Unterwaditzer 2015-09-23 22:45:39 +02:00
parent 0d3e274c4f
commit 5f682cadb9
11 changed files with 29 additions and 28 deletions

8
.gitignore vendored
View file

@ -10,9 +10,9 @@ env
.egg .egg
.xprocess .xprocess
dist dist
tests/storage/dav/servers/* tests/storage/servers/*
!tests/storage/dav/servers/__init__.py !tests/storage/servers/__init__.py
!tests/storage/dav/servers/radicale !tests/storage/servers/radicale
!tests/storage/dav/servers/skip !tests/storage/servers/skip
docs/_build/ docs/_build/
vdirsyncer/version.py vdirsyncer/version.py

View file

@ -6,9 +6,9 @@ include Makefile
recursive-include docs * recursive-include docs *
recursive-include tests * recursive-include tests *
prune tests/storage/dav/servers prune tests/storage/servers
recursive-include tests/storage/dav/servers/radicale * recursive-include tests/storage/servers/radicale *
recursive-include tests/storage/dav/servers/skip * recursive-include tests/storage/servers/skip *
prune docs/_build prune docs/_build
global-exclude *.py[cdo] __pycache__ *.so *.pyd global-exclude *.py[cdo] __pycache__ *.so *.pyd

View file

@ -14,20 +14,22 @@
export DAV_SERVER := radicale export DAV_SERVER := radicale
export RADICALE_BACKEND := filesystem export RADICALE_BACKEND := filesystem
export REQUIREMENTS := release export REQUIREMENTS := release
export TESTSERVER_BASE := ./tests/storage/dav/servers/ export TESTSERVER_BASE := ./tests/storage/servers/
export TRAVIS := false export TRAVIS := false
install-davserver: install-servers:
set -e; \ set -ex; \
if [ ! -d "$(TESTSERVER_BASE)$(DAV_SERVER)/" ]; then \ for server in $(DAV_SERVER); do \
git clone --depth=1 \ if [ ! -d "$(TESTSERVER_BASE)$$server/" ]; then \
https://github.com/vdirsyncer/$(DAV_SERVER)-testserver.git \ git clone --depth=1 \
/tmp/$(DAV_SERVER)-testserver; \ https://github.com/vdirsyncer/$$server-testserver.git \
ln -s /tmp/$(DAV_SERVER)-testserver $(TESTSERVER_BASE)$(DAV_SERVER); \ /tmp/$$server-testserver; \
fi ln -s /tmp/$$server-testserver $(TESTSERVER_BASE)$$server; \
cd $(TESTSERVER_BASE)$(DAV_SERVER) && sh install.sh fi; \
cd $(TESTSERVER_BASE)$$server && sh install.sh; \
done
install-test: install-davserver install-test: install-servers
pip install pytest pytest-xprocess pytest-localserver pip install pytest pytest-xprocess pytest-localserver
[ $(TRAVIS) != "true" ] || pip install coverage coveralls [ $(TRAVIS) != "true" ] || pip install coverage coveralls

View file

@ -2,7 +2,7 @@
universal = 1 universal = 1
[pytest] [pytest]
norecursedirs = tests/storage/dav/servers/* norecursedirs = tests/storage/servers/*
[flake8] [flake8]
# W503: Line break before operator # W503: Line break before operator

View file

@ -12,6 +12,12 @@ from .. import EVENT_TEMPLATE, TASK_TEMPLATE, VCARD_TEMPLATE, \
assert_item_equals 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): def format_item(item_template, uid=None):
# assert that special chars are handled correctly. # assert that special chars are handled correctly.
r = random.random() r = random.random()

View file

@ -10,18 +10,11 @@ from tests import assert_item_equals
import vdirsyncer.exceptions as exceptions import vdirsyncer.exceptions as exceptions
from vdirsyncer.storage.base import Item from vdirsyncer.storage.base import Item
from .. import StorageTests from .. import StorageTests, get_server_mixin
dav_server = os.environ['DAV_SERVER'] dav_server = os.environ['DAV_SERVER']
ServerMixin = get_server_mixin(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)
class DavStorageTests(ServerMixin, StorageTests): class DavStorageTests(ServerMixin, StorageTests):