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
.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

View file

@ -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

View file

@ -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

View file

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

View file

@ -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()

View file

@ -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):