diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/servertest.py | 63 | ||||
-rw-r--r-- | test/test_server.py | 25 | ||||
-rwxr-xr-x | test/travis_setup.sh | 22 |
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 |