Example #1
0
 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)
Example #2
0
 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'
Example #4
0
    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
Example #5
0
def http_router(c):
    return UrlDispatcher()
Example #6
0
def router():
    return UrlDispatcher()
Example #7
0
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)
Example #8
0
def test_add_to_non_initialized_router():
    router = UrlDispatcher()
    with pytest.raises(RuntimeError):
        router.add_get('/', make_handler())
Example #9
0
# 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)