| # -*- coding: utf-8 -*- |
| from tests.compat import unittest |
| from webob import Request |
| from webtest.debugapp import debug_app |
| from webtest import http |
| |
| |
| class TestServer(unittest.TestCase): |
| |
| def setUp(self): |
| self.s = http.StopableWSGIServer.create(debug_app) |
| |
| def test_server(self): |
| s = self.s |
| s.wait() |
| self.assertEqual(200, |
| http.check_server(s.adj.host, s.adj.port, |
| '/__application__')) |
| self.assertEqual(200, |
| http.check_server(s.adj.host, s.adj.port, |
| '/__file__?__file__=' + __file__)) |
| self.assertEqual(404, |
| http.check_server(s.adj.host, s.adj.port, |
| '/__file__?__file__=XXX')) |
| |
| self.assertEqual(304, |
| http.check_server(s.adj.host, s.adj.port, |
| '/?status=304')) |
| |
| def test_wsgi_wrapper(self): |
| s = self.s |
| s.wait() |
| req = Request.blank('/__application__') |
| resp = req.get_response(s.wrapper) |
| self.assertEqual(resp.status_int, 200) |
| |
| req = Request.blank('/__file__?__file__=' + __file__) |
| resp = req.get_response(s.wrapper) |
| self.assertEqual(resp.status_int, 200) |
| |
| req = Request.blank('/__file__?__file__=XXX') |
| resp = req.get_response(s.wrapper) |
| self.assertEqual(resp.status_int, 404) |
| |
| req = Request.blank('/?status=304') |
| resp = req.get_response(s.wrapper) |
| self.assertEqual(resp.status_int, 304) |
| |
| def tearDown(self): |
| self.s.shutdown() |
| |
| |
| class TestBrokenServer(unittest.TestCase): |
| |
| def test_shutdown_non_running(self): |
| host, port = http.get_free_port() |
| s = http.StopableWSGIServer(debug_app, host=host, port=port) |
| self.assertFalse(s.wait(retries=-1)) |
| self.assertTrue(s.shutdown()) |
| |
| |
| class TestClient(unittest.TestCase): |
| |
| def test_no_server(self): |
| host, port = http.get_free_port() |
| self.assertEqual(0, http.check_server(host, port, retries=2)) |