1#!/usr/bin/env python 2 3import pytest 4if pytest.PYVER[:2] == (3, 3): 5 pytest.skip("Broken on Python 3.3") 6 7from circuits.web import Server 8from circuits.web.wsgi import Gateway 9 10from .helpers import urlopen 11 12 13def hello(environ, start_response): 14 status = "200 OK" 15 response_headers = [("Content-type", "text/plain")] 16 start_response(status, response_headers) 17 return "Hello World!" 18 19 20def foobar(environ, start_response): 21 status = "200 OK" 22 response_headers = [("Content-type", "text/plain")] 23 start_response(status, response_headers) 24 return "FooBar!" 25 26 27@pytest.fixture 28def apps(request): 29 return { 30 "/": hello, 31 "/foobar": foobar 32 } 33 34 35def test(apps): 36 server = Server(0) 37 Gateway(apps).register(server) 38 39 waiter = pytest.WaitEvent(server, "ready") 40 server.start() 41 waiter.wait() 42 43 f = urlopen(server.http.base) 44 s = f.read() 45 assert s == b"Hello World!" 46 47 f = urlopen("{0:s}/foobar/".format(server.http.base)) 48 s = f.read() 49 assert s == b"FooBar!" 50 51 server.stop() 52