Use pytest-xprocess for process management

This commit is contained in:
Markus Unterwaditzer 2014-03-20 15:01:55 +01:00
parent c492813487
commit 414b986450
6 changed files with 30 additions and 15 deletions

2
.gitignore vendored
View file

@ -6,3 +6,5 @@ build
env env
owncloud-testserver owncloud-testserver
*.egg-info *.egg-info
.cache
.xprocess

View file

@ -26,7 +26,9 @@ radicale_deps() {
} }
davserver_owncloud() { davserver_owncloud() {
git clone https://github.com/untitaker/owncloud-testserver.git # Maybe tmpfs is mounted on /tmp/, can't harm anyway.
git clone --depth=1 https://github.com/untitaker/owncloud-testserver.git /tmp/owncloud-testserver
ln -s /tmp/owncloud-testserver .
cd ./owncloud-testserver/ cd ./owncloud-testserver/
sh install.sh sh install.sh
} }

View file

@ -1,3 +1,4 @@
pytest pytest
pytest-xprocess
mock mock
git+https://github.com/geier/leif git+https://github.com/geier/leif

View file

@ -1,16 +1,4 @@
#!/bin/sh #!/bin/sh
set -e set -e
[ -n "$DAV_SERVER" ] || DAV_SERVER=radicale_filesystem [ -n "$DAV_SERVER" ] || DAV_SERVER=radicale_filesystem
exec py.test $@
davserver_radicale_database() { true; }
davserver_radicale_filesystem() { true; }
davserver_owncloud() {
sh ./owncloud-testserver/php.sh
}
# while it would be nice if the server was cleanly shut down, it's not really a
# problem either
davserver_$DAV_SERVER &
py.test $@

View file

@ -20,7 +20,7 @@ class ServerMixin(object):
wsgi_teardown = None wsgi_teardown = None
def setup_method(self, method): def setup_method(self, method):
subprocess.call([os.path.join(owncloud_repo, 'install.sh')]) subprocess.check_call([os.path.join(owncloud_repo, 'install.sh')])
def get_storage_args(self, collection='test'): def get_storage_args(self, collection='test'):
url = 'http://127.0.0.1:8080' url = 'http://127.0.0.1:8080'

View file

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
'''
vdirsyncer.tests.storage.dav.conftest
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:copyright: (c) 2014 Markus Unterwaditzer
:license: MIT, see LICENSE for more details.
'''
import os
import pytest
dav_server = os.environ.get('DAV_SERVER', '').strip() or 'radicale_filesystem'
php_sh = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../../owncloud-testserver/php.sh'))
if dav_server == 'owncloud':
@pytest.fixture(autouse=True)
def start_owncloud_server(xprocess):
def preparefunc(cwd):
return 'Listening on', ['sh', php_sh]
xprocess.ensure('owncloud_server', preparefunc)