Exemple #1
0
def test_non_default_router(loop):
    router = web.UrlDispatcher()
    app = web.Application(loop=loop, router=router)
    assert router is app.router

    def test_logging(self):
        logger = mock.Mock()
        app = web.Application(loop=self.loop)
        app.logger = logger
        self.assertIs(app.logger, logger)
Exemple #2
0
def test_add_resource():
    router = web.UrlDispatcher()

    check_length(router.resources(), 0)
    check_length(router.routes(), 0)

    with add_resource_context(router) as add_resource:
        add_resource("/", dummy_handler, head=dummy_handler)

    check_length(router.resources(), 1)
    check_length(router.routes(), 2)
Exemple #3
0
def test_add_resource_url_prefix():
    router = web.UrlDispatcher()

    ctx = add_resource_context(router, url_prefix="/api")
    with ctx as add_resource:
        add_resource("/", dummy_handler, name="index")
        add_resource("/posts",
                     get=dummy_handler,
                     post=dummy_handler,
                     name="posts")

    check_length(router.resources(), 2)
    check_length(router.routes(), 3)

    assert str(router["index"].url_for()) == "/api/"
    assert str(router["posts"].url_for()) == "/api/posts"
Exemple #4
0
def test_add_resource_real_world():
    router = web.UrlDispatcher()

    with add_resource_context(router, "/api/", "api") as add_resource:
        add_resource("/", dummy_handler, name="index")
        add_resource("/news",
                     get=dummy_handler,
                     post=dummy_handler,
                     name="news")
        add_resource(
            r"/user/{user_id:\d+}",
            get=dummy_handler,
            patch=dummy_handler,
            put=dummy_handler,
            delete=dummy_handler,
            name="user",
        )

    check_length(router.resources(), 3)
    check_length(router.routes(), 7)

    assert str(router["api.index"].url_for()) == "/api/"
    assert str(router["api.news"].url_for()) == "/api/news"
    assert str(router["api.user"].url_for(user_id="1")) == "/api/user/1"
Exemple #5
0
    app.add_subapp("/my_subapp", subapp)

    # similar behavior is possible with `app.add_domain`, but since I don't think we'll have special handling
    # for any kind of subapps, I have not created a test for this.

## ================================ ##
## Constructing UrlDispatcher first ##
## ================================ ##

if True:

    async def manual_dispatcher_instance(request):  # $ requestHandler
        return web.Response(
            text="manual_dispatcher_instance")  # $ HttpResponse

    url_dispatcher = web.UrlDispatcher()
    url_dispatcher.add_get("/manual_dispatcher_instance",
                           manual_dispatcher_instance
                           )  # $ routeSetup="/manual_dispatcher_instance"

    subapp2 = web.Application(router=url_dispatcher)
    app.add_subapp("/manual_dispatcher_instance_app", subapp2)

## =========== ##
## Run the app ##
## =========== ##

if __name__ == "__main__":
    print("For auto-reloading server you can use:")
    print(f"aiohttp-devtools runserver {__file__}")
    print("after doing `pip install aiohttp-devtools`")
Exemple #6
0
 def __init__(self, api):
     """Initialize the route."""
     self.api = api
     self.router = web.UrlDispatcher()
     super(ApiRoute, self).__init__('*', None, api.prefix_name)
Exemple #7
0
        sockjs.add_endpoint(self,
                            self.sockjs_handler,
                            name="game",
                            prefix="/sockjs/")

    @aiohttp_jinja2.template('index.html')
    def index(self, request):
        return {
            'title': 'Whats up ' + request.GET.get('name', 'World'),
            'app': self,
        }

    def sockjs_handler(self, msg, session):
        if msg.tp == sockjs.MSG_OPEN:
            session.manager.broadcast("Someone Joined")
            self.game.player_joined(session)

        if msg.tp == sockjs.MSG_MESSAGE:
            session.manager.broadcast(msg.data)

        if msg.tp == sockjs.MSG_CLOSED:
            session.manager.broadcast("Someone Left")


logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(levelname)s %(message)s')
app = GameApplication(router=web.UrlDispatcher(), debug=True)
if __name__ == "__main__":

    run(app, app_uri='game.main:app', reload=True, port=8000, host='0.0.0.0')
Exemple #8
0
 def test_non_default_router(self):
     router = web.UrlDispatcher()
     app = web.Application(loop=self.loop, router=router)
     self.assertIs(router, app.router)
Exemple #9
0
 def __init__(self, address, port, *, middlewares=(), **kws):
     self.addr, self.port = address, port
     self.middlewares = list(middlewares)
     self.init_kws = kws
     self.router = web.UrlDispatcher()
     self.app = self.runner = None