hug_store_redis is a Redis store extension for the Python framework hug, which can be used as a session store.
Installation
hug_test: | |
Requests per second: 4318.00 [#/sec] (mean) | |
Complete requests: 20000 | |
falcon_test: | |
Requests per second: 4756.76 [#/sec] (mean) | |
Complete requests: 20000 | |
flask_test: | |
Requests per second: 3197.57 [#/sec] (mean) | |
Complete requests: 20000 | |
bobo_test: |
hug_test: | |
Requests per second: 576.28 [#/sec] (mean) | |
Complete requests: 20000 | |
falcon_test: | |
Requests per second: 583.47 [#/sec] (mean) | |
Complete requests: 20000 | |
flask_test: | |
Requests per second: 582.66 [#/sec] (mean) | |
Complete requests: 20000 | |
bobo_test: |
[ERROR] Internal Server Error: /auth/login/ | |
Traceback (most recent call last): | |
File "/opt/sentry/local/lib/python2.7/site-packages/sentry/../django/core/handlers/base.py", line 112, in get_response | |
response = wrapped_callback(request, *callback_args, **callback_kwargs) | |
File "/opt/sentry/local/lib/python2.7/site-packages/sentry/../django/views/generic/base.py", line 69, in view | |
return self.dispatch(request, *args, **kwargs) | |
File "/opt/sentry/local/lib/python2.7/site-packages/sentry/../django/utils/decorators.py", line 29, in _wrapper | |
return bound_func(*args, **kwargs) | |
File "/opt/sentry/local/lib/python2.7/site-packages/sentry/../django/utils/decorators.py", line 99, in _wrapped_view | |
response = view_func(request, *args, **kwargs) |
# Will be started via hug -m | |
import endpoints | |
import hug | |
from libtree import Tree | |
from libtree.core.database import make_dsn_from_env | |
import psycopg2 | |
import os | |
dsn = make_dsn_from_env(os.environ) |
$ py.test tests | |
==================================================== test session starts ==================================================== | |
platform darwin -- Python 3.4.1 -- py-1.4.30 -- pytest-2.7.2 | |
rootdir: /Users/vortec/workspace/code/hug, inifile: | |
plugins: cov, xdist, xdist, xdist | |
collected 356 items | |
tests/test_api.py .. | |
tests/test_authentication.py ... | |
tests/test_decorators.py ............................................................... |
@hug.authentication.authenticator | |
def header_exists(request, response, verify_user, **kwargs): | |
print("yo") | |
return {'user': 'foo'} | |
@hug.get('/test', requires=header_exists) | |
def test(user: hug.directives.user): | |
return "hai" |
import time | |
from threading import Thread | |
from kazoo.client import KazooState | |
def create_nodes_after_reconnect(zk): | |
time.sleep(0.1) | |
for (service_path, data) in zk.ka_nodes.items(): | |
register_service(zk, service_path, data, keep_alive=True) |
import uuid | |
class SessionNotFound(Exception): | |
pass | |
class InMemoryStore: | |
""" not thread-safe ;-) """ | |
def __init__(self): | |
self.sessions = {} |
(devpi)[root@ci] ~devpi/var # devpi-server --port 8020 --serverdir /opt/devpi/var/slave_test --role=master | |
2015-10-30 16:20:06,417 INFO NOCTX Loading node info from /opt/devpi/var/slave_test/.nodeinfo | |
2015-10-30 16:20:06,417 INFO NOCTX wrote nodeinfo to: /opt/devpi/var/slave_test/.nodeinfo | |
Traceback (most recent call last): | |
File "/opt/devpi/bin/devpi-server", line 11, in <module> | |
sys.exit(main()) | |
File "/opt/devpi/local/lib/python2.7/site-packages/devpi_server/main.py", line 51, in main | |
return _main(pluginmanager, argv=argv) | |
File "/opt/devpi/local/lib/python2.7/site-packages/devpi_server/main.py", line 83, in _main | |
with xom.keyfs.transaction(write=True): |