@pytest.fixture
def cli(loop, test_client):
app = web.Application(loop=loop)
error_middleware = error_pages({400: handle_400,
404: handle_404,
500: handle_500})
app.middlewares.append(error_middleware)
# Jinja2
aiohttp_jinja2.setup(app, loader=jinja2.FileSystemLoader(os.path.join(C.BASE_DIR, "templates")))
# secret_key must be 32 url-safe base64-encoded bytes
fernet_key = fernet.Fernet.generate_key()
secret_key = base64.urlsafe_b64decode(fernet_key)
s_setup(app, EncryptedCookieStorage(secret_key))
# Adding routes
for route in routes:
app.router.add_route(route[0], route[1], route[2], name=route[3])
# Add static route
app.router.add_static('/static/',
path=os.path.join(C.BASE_DIR, "static"),
name='static')
# db connect
async def create_engine():
from aiopg.sa import create_engine
from factory import metadata
engine = await create_engine(
user=user,
database=db,
host=host,
password=password,
loop=loop
)
metadata.create_all(engine)
return engine
app['db'] = create_engine()
print(dir(app['db']))
logging.config.dictConfig(C.DEFAULT_LOGGING)
logger = logging.getLogger('default')
app['logger'] = logger
return loop.run_until_complete(test_client(app))