summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/servertest.py63
-rw-r--r--test/test_server.py25
-rwxr-xr-xtest/travis_setup.sh22
3 files changed, 66 insertions, 44 deletions
diff --git a/test/servertest.py b/test/servertest.py
index c4ac27f..3fd33cc 100644
--- a/test/servertest.py
+++ b/test/servertest.py
@@ -1,38 +1,39 @@
-if __name__ != '__main__':
- raise ImportError('This is not a module, but a script.')
+def main():
+ import sys, os, socket
-import sys, os, socket
-
-test_root = os.path.dirname(os.path.abspath(__file__))
-os.chdir(test_root)
-sys.path.insert(0, os.path.dirname(test_root))
-sys.path.insert(0, test_root)
-
-try:
- server = sys.argv[1]
- port = int(sys.argv[2])
-
- if server == 'gevent':
- from gevent import monkey
- monkey.patch_all()
- elif server == 'eventlet':
- import eventlet
- eventlet.monkey_patch()
+ test_root = os.path.dirname(os.path.abspath(__file__))
+ os.chdir(test_root)
+ sys.path.insert(0, os.path.dirname(test_root))
+ sys.path.insert(0, test_root)
try:
- import coverage
- coverage.process_startup()
+ server = sys.argv[1]
+ port = int(sys.argv[2])
+
+ if server == 'gevent':
+ from gevent import monkey
+ monkey.patch_all()
+ elif server == 'eventlet':
+ import eventlet
+ eventlet.monkey_patch()
+
+ try:
+ import coverage
+ coverage.process_startup()
+ except ImportError:
+ pass
+
+ from bottle import route, run
+ route('/test', callback=lambda: 'OK')
+ run(port=port, server=server, quiet=True)
+
+ except socket.error:
+ sys.exit(3)
except ImportError:
+ sys.exit(128)
+ except KeyboardInterrupt:
pass
- from bottle import route, run
- route('/test', callback=lambda: 'OK')
- run(port=port, server=server, quiet=True)
-
-except socket.error:
- sys.exit(3)
-except ImportError:
- sys.exit(128)
-except KeyboardInterrupt:
- pass
+if __name__ == '__main__':
+ main()
diff --git a/test/test_server.py b/test/test_server.py
index 63699ae..0a48e41 100644
--- a/test/test_server.py
+++ b/test/test_server.py
@@ -54,9 +54,11 @@ class TestServer(unittest.TestCase):
if rv is None:
raise AssertionError("Server took too long to start up.")
if rv is 128: # Import error
- tools.warn("Skipping %r test (ImportError)." % self.server)
- self.skip = True
- return
+ if os.environ.get('CI') != 'true' or \
+ os.environ.get('TRAVIS_PYTHON_VERSION') not in ('2.7', '3.6'):
+ tools.warn("Skipping %r test (ImportError)." % self.server)
+ self.skip = True
+ return
if rv is 3: # Port in use
continue
raise AssertionError("Server exited with error code %d" % rv)
@@ -96,7 +98,22 @@ class TestServer(unittest.TestCase):
self.assertEqual(tob('OK'), self.fetch('test'))
-blacklist = ['cgi', 'flup', 'gae']
+blacklist = ['cgi', 'flup', 'gae', 'wsgiref']
+
+if sys.version_info.major == 2:
+ blacklist += [
+ 'aiohttp',
+ 'uvloop',
+ ]
+else:
+ blacklist += [
+ 'bjoern',
+ 'diesel',
+ 'fapws3',
+ 'flup',
+ 'gevent',
+ ]
+
for name in set(server_names) - set(blacklist):
classname = 'TestServerAdapter_'+name
diff --git a/test/travis_setup.sh b/test/travis_setup.sh
index 3ba2e1a..c8d5ab2 100755
--- a/test/travis_setup.sh
+++ b/test/travis_setup.sh
@@ -13,15 +13,19 @@ pip install -U coverage
pip install coveralls
# Server back-ends and template engines. Not all back-ends support all python versions and we only want to test for 2.7 and 3.6 to keep things sane
-if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then
+case ${TRAVIS_PYTHON_VERSION} in
+2.7|3.6)
sudo apt-get update -y
sudo apt-get install -y libev-dev
- pip install mako jinja2 waitress "cherrypy<9" cheroot paste tornado twisted diesel meinheld gunicorn eventlet
- pip install flup fapws3 rocket bjoern gevent
-elif [[ $TRAVIS_PYTHON_VERSION == 3.6 ]]; then
- sudo apt-get update -y
- sudo apt-get install -y libev-dev
- pip install mako jinja2 waitress "cherrypy<9" cheroot paste tornado twisted diesel meinheld gunicorn eventlet
- pip install uvloop
-fi
+ pip install mako jinja2 waitress "cherrypy<9" cheroot paste tornado twisted meinheld gunicorn eventlet
+ ;;
+esac
+case ${TRAVIS_PYTHON_VERSION} in
+2.7)
+ pip install flup fapws3 bjoern gevent diesel
+ ;;
+3.6)
+ pip install aiohttp-wsgi uvloop
+ ;;
+esac