123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- import logging
- import asyncio
- from aiohttp.web import Response
- from api_hour.plugins.aiohttp import JSON
- import aiohttp_jinja2
- from ..services import queries_number
- from ..services.world import get_random_record, get_random_records, update_random_records, get_fortunes
- from ..services import redis, mysql
- LOG = logging.getLogger(__name__)
- @asyncio.coroutine
- def json(request):
- """Test type 1: JSON serialization"""
- return JSON({'message': 'Hello, World!'})
- @asyncio.coroutine
- def db(request):
- """Test type 2: Single database query"""
- container = request.app.ah_container
- return JSON((yield from get_random_record(container)))
- @asyncio.coroutine
- def db_redis(request):
- """Test type 2: Single database query"""
- container = request.app.ah_container
- return JSON((yield from redis.get_random_record(container)))
- @asyncio.coroutine
- def db_mysql(request):
- """Test type 2: Single database query"""
- container = request.app.ah_container
- return JSON((yield from mysql.get_random_record(container)))
- @asyncio.coroutine
- def queries(request):
- """Test type 3: Multiple database queries"""
- container = request.app.ah_container
- limit = queries_number(request.GET.get('queries', 1))
- return JSON((yield from get_random_records(container, limit)))
- @asyncio.coroutine
- def queries_redis(request):
- """Test type 3: Multiple database queries"""
- container = request.app.ah_container
- limit = queries_number(request.GET.get('queries', 1))
- return JSON((yield from redis.get_random_records(container, limit)))
- @asyncio.coroutine
- def queries_mysql(request):
- """Test type 3: Multiple database queries"""
- container = request.app.ah_container
- limit = queries_number(request.GET.get('queries', 1))
- return JSON((yield from mysql.get_random_records(container, limit)))
- @asyncio.coroutine
- def fortunes(request):
- """Test type 4: Fortunes"""
- container = request.app.ah_container
- return aiohttp_jinja2.render_template('fortunes.html.j2',
- request,
- {'fortunes': (yield from get_fortunes(container))})
- @asyncio.coroutine
- def fortunes_redis(request):
- """Test type 4: Fortunes"""
- container = request.app.ah_container
- return aiohttp_jinja2.render_template('fortunes.html.j2',
- request,
- {'fortunes': (yield from redis.get_fortunes(container))})
- @asyncio.coroutine
- def fortunes_mysql(request):
- """Test type 4: Fortunes"""
- container = request.app.ah_container
- return aiohttp_jinja2.render_template('fortunes.html.j2',
- request,
- {'fortunes': (yield from mysql.get_fortunes(container))})
- @asyncio.coroutine
- def updates(request):
- """Test type 5: Database updates"""
- container = request.app.ah_container
- limit = queries_number(request.GET.get('queries', 1))
- return JSON((yield from update_random_records(container, limit)))
- @asyncio.coroutine
- def updates_redis(request):
- """Test type 5: Database updates"""
- container = request.app.ah_container
- limit = queries_number(request.GET.get('queries', 1))
- return JSON((yield from redis.update_random_records(container, limit)))
- @asyncio.coroutine
- def updates_mysql(request):
- """Test type 5: Database updates"""
- container = request.app.ah_container
- limit = queries_number(request.GET.get('queries', 1))
- return JSON((yield from mysql.update_random_records(container, limit)))
- @asyncio.coroutine
- def plaintext(request):
- """Test type 6: Plaintext"""
- return Response(text='Hello, World!')
|