def test_dispatch(self): env = create_environ('/') map = r.Map([ r.Rule('/', endpoint='root'), r.Rule('/foo/', endpoint='foo') ]) adapter = map.bind_to_environ(env) raise_this = None def view_func(endpoint, values): if raise_this is not None: raise raise_this return Response(repr((endpoint, values))) dispatch = lambda p, q=False: Response.force_type(adapter.dispatch(view_func, p, catch_http_exceptions=q), env) assert dispatch('/').data == b"('root', {})" assert dispatch('/foo').status_code == 301 raise_this = r.NotFound() self.assert_raises(r.NotFound, lambda: dispatch('/bar')) assert dispatch('/bar', True).status_code == 404
def test_dispatch(): env = create_environ("/") map = r.Map([r.Rule("/", endpoint="root"), r.Rule("/foo/", endpoint="foo")]) adapter = map.bind_to_environ(env) raise_this = None def view_func(endpoint, values): if raise_this is not None: raise raise_this return Response(repr((endpoint, values))) def dispatch(path, quiet=False): return Response.force_type( adapter.dispatch(view_func, path, catch_http_exceptions=quiet), env ) assert dispatch("/").data == b"('root', {})" assert dispatch("/foo").status_code == 308 raise_this = r.NotFound() pytest.raises(r.NotFound, lambda: dispatch("/bar")) assert dispatch("/bar", True).status_code == 404