from unittest import mock from fastsio import middleware class TestMiddleware: def test_wsgi_routing(self): mock_wsgi_app = mock.MagicMock() mock_sio_app = "foo" m = middleware.Middleware(mock_sio_app, mock_wsgi_app) environ = {"PATH_INFO": "/foo"} start_response = "foo" m(environ, start_response) mock_wsgi_app.assert_called_once_with(environ, start_response) def test_sio_routing(self): mock_wsgi_app = "foo" mock_sio_app = mock.Mock() mock_sio_app.handle_request = mock.MagicMock() m = middleware.Middleware(mock_sio_app, mock_wsgi_app) environ = {"PATH_INFO": "/socket.io/"} start_response = "foo" m(environ, start_response) mock_sio_app.handle_request.assert_called_once_with(environ, start_response) def test_404(self): mock_wsgi_app = None mock_sio_app = mock.Mock() m = middleware.Middleware(mock_sio_app, mock_wsgi_app) environ = {"PATH_INFO": "/foo/bar"} start_response = mock.MagicMock() r = m(environ, start_response) assert r == [b"Not Found"] start_response.assert_called_once_with( "404 Not Found", [("Content-Type", "text/plain")] )