def test_001_register(self, add_route): router = UrlDispatcher() router.post_init(Mock()) self.resource_cls.register(Mock(), router) # GET /v1/test # DELETE /v1/test # GET /v2/test # DELETE /v2/test self.assertEqual(add_route.call_count, 4)
def change_routes(self, routes): router = UrlDispatcher() try: for route in routes: router.add_route(route.method, route.path, route.handler, name=route.id) except Exception as exc: raise InvalidRouteError("Invalid route") from exc else: self._router = router if self._frozen: self._router.freeze()
def test_register_route(): @asyncio.coroutine def handler(request): return Response() route = PlainRoute('GET', handler, 'test', '/handler/to/path') router = UrlDispatcher() router.register_route(route) req = make_mocked_request('GET', '/handler/to/path') info = yield from router.resolve(req) assert info is not None assert 0 == len(info) assert route is info.route assert handler is info.handler assert info.route.name == 'test'
def _make_dispatcher(self) -> UrlDispatcher: """Creates a aiohttp :see:UrlDispatcher based on the configured list of urls. Returns: A aiohttp :see:UrlDispatcher containing the configured urls. """ dispatcher = UrlDispatcher() dispatcher.post_init(self) for url in self._urls: resource = dispatcher.add_resource(url.url, name=url.name) resource.add_route('GET', url.view) return dispatcher
def http_router(c): return UrlDispatcher()
def router(): return UrlDispatcher()
import logging import aioredis import peewee_async import aiohttp_cors from aiohttp import web from aiohttp.web_urldispatcher import UrlDispatcher from aiohttp_session import session_middleware from aiohttp_session.redis_storage import RedisStorage from db import database from utils.middlewares import request_user_middleware from settings import REDIS_CON, DATABASE from views import Test, WebSocket, LogInView, UserInfoView, RoomListView router = UrlDispatcher() loop = asyncio.get_event_loop() redis_pool = loop.run_until_complete(aioredis.create_pool(REDIS_CON, loop=loop)) middlewares = [ session_middleware( RedisStorage(redis_pool=redis_pool, cookie_name='aiochat_session_id', max_age=24 * 60 * 60, domain="192.168.0.101", httponly=False, secure=False)), request_user_middleware ] app = web.Application(router=router, middlewares=middlewares)
def test_add_to_non_initialized_router(): router = UrlDispatcher() with pytest.raises(RuntimeError): router.add_get('/', make_handler())
# coding utf8 from aiohttp import web import asyncio import os from aiohttp.web_urldispatcher import UrlDispatcher from typing import Callable from functools import partial from ..utils import io_echo from functools import wraps import sys from .wrappers import AioIOWrapper __all__ = ['router'] router = UrlDispatcher(app=NotImplemented) print = partial(print, file=sys.__stdout__) def out(s: str): ''' Show info message with yellow color ''' return io_echo("\033[92mOut: {}\033[00m".format(s)) def command_parser(cmd: str, fns: dict) -> Callable: ''' get target function from funs dict and \ map command like "cmd arg0 arg1 arg2 --key1=v1 --key2=v2" to \ partial(fn, arg0, arg1, arg2, key1=v1, key2=v2)