def test_basic_target_path(self): router = Router() template = URITemplate('/root/{target}{/path*}') routeuri = templateuri_to_sanic_routeuri(template) # have to use strict slashes to avoid ambiguity. router.add(routeuri, ['GET'], 'root-target-path', strict_slashes=True) request = make_request('/root/base/some/test/path') self.assertEqual(( 'root-target-path', [], { 'target': 'base', 'path': '/some/test/path', }, routeuri, None, ), router.get(request)) request = make_request('/root/base/some/test/path/') self.assertEqual(( 'root-target-path', [], { 'target': 'base', 'path': '/some/test/path/', }, routeuri, None, ), router.get(request))
def test_fail_on_partial(self): router = Router() template = URITemplate('/rooted') routeuri = templateuri_to_sanic_routeuri(template) router.add(routeuri, ['GET'], 'root') request = make_request('/root') with self.assertRaises(NotFound): router.get(request) request = make_request('/roottedmore') with self.assertRaises(NotFound): router.get(request)
def test_basic(self): router = Router() template = URITemplate('/root') routeuri = templateuri_to_sanic_routeuri(template) router.add(routeuri, ['GET'], 'root') request = make_request('/root') self.assertEqual(( 'root', [], {}, routeuri, None, ), router.get(request))
def _setup(route_details: tuple) -> Tuple[Router, tuple]: router = Router() added_router = [] for method, route in route_details: try: router.add( uri=f"/{route}", methods=frozenset({method}), host="localhost", handler=_handler, ) added_router.append((method, route)) except RouteExists: pass router.finalize() return router, added_router
def create_sanic_router(uri_data): endpoint = Endpoint("sanic") router = Router() # static routes for u in uri_data.get_static_uris(): router.add(u, methods=["GET"], handler=endpoint) # zero variable template = uri_data.get_zero_var_uri(ParamFormat.SANIC) router.add(template, methods=["GET"], handler=endpoint) # one variable template = uri_data.get_one_var_uri(ParamFormat.SANIC) router.add(template, methods=["GET"], handler=endpoint) # two variables template = uri_data.get_two_var_uri(ParamFormat.SANIC) router.add(template, methods=["GET"], handler=endpoint) # three variables template = uri_data.get_three_var_uri(ParamFormat.SANIC) router.add(template, methods=["GET"], handler=endpoint) # done return router
def sanic_add_routes(routes): router = SanicRouter() for url, controller, methods, method_dict in routes: router.add(url, methods, controller) return router