get some tests working

This commit is contained in:
William Luke
2022-01-10 15:43:10 +03:00
parent 64c9fa2538
commit 8aab6c4c2b
10 changed files with 216 additions and 107 deletions

View File

@@ -12,16 +12,8 @@ from fastapi import FastAPI, Query
log = logging.getLogger(__name__)
def create_app(chain_spec,
celery_queue,
redis_host,
redis_port,
redis_db,
redis_timeout):
setup_cache(redis_db=redis_db, redis_host=redis_host,
redis_port=redis_port)
celery_wrapper = create_celery_wrapper(celery_queue=celery_queue, chain_spec=chain_spec,
redis_db=redis_db, redis_host=redis_host, redis_port=redis_port, redis_timeout=redis_timeout)
def create_app(celery_wrapper):
app = FastAPI(debug=True,
title="Grassroots Economics",
description="CIC ETH API",
@@ -99,7 +91,6 @@ def create_app(chain_spec,
if token == None:
sys.stderr.write(f"Cached Token {token_symbol} not found")
data = celery_wrapper('token', token_symbol, proof=proof)
cache.set_token_data(token_symbol, data)
token = Token.new(data)
sys.stderr.write(f"Token {token}")
@@ -119,20 +110,10 @@ def create_app(chain_spec,
@app.get("/default_token", response_model=DefaultToken)
def default_token():
data = cache.get_default_token()
if data is None:
data = celery_wrapper('default_token')
if data is not None:
cache.set_default_token(data)
data = celery_wrapper('default_token')
return data
def get_token(token_symbol: str):
data = cache.get_token_data(token_symbol)
log.debug(f"cached token data: {data}")
if data == None:
data = celery_wrapper('token', token_symbol)
log.debug(
f"No token data setting token data for: {token_symbol} to {data}")
cache.set_token_data(token_symbol, data)
data = celery_wrapper('token', token_symbol)
return Token.new(data)
return app

View File

@@ -18,7 +18,7 @@ def create_celery_wrapper(chain_spec,
def call(method, *args, catch=1, **kwargs):
""" Creates a redis channel and calls `cic_eth.api` with the provided `method` and `*args`. Returns the result of the api call. Catch allows you to specify how many messages to catch before returning.
"""
log.debug(f"Using chainspec: {chain_spec}")
log.debug(f"Using redis: {redis_host}, {redis_port}, {redis_db}")
redis_channel = str(uuid.uuid4())
r = redis.Redis(redis_host, redis_port, redis_db)
ps = r.pubsub()
@@ -39,6 +39,7 @@ def create_celery_wrapper(chain_spec,
if catch == 1:
message = ps.get_message(timeout=redis_timeout)
data = json.loads(message['data'])["result"]
raise data
else:
for _i in range(catch):
message = ps.get_message(

View File

@@ -1,20 +0,0 @@
import logging
import cic_eth.cli
def get_config():
# Parse Args
arg_flags = cic_eth.cli.argflag_std_base
local_arg_flags = cic_eth.cli.argflag_local_taskcallback
argparser = cic_eth.cli.ArgumentParser(arg_flags)
argparser.process_local_flags(local_arg_flags)
args = argparser.parse_args([])
config = cic_eth.cli.Config.from_args(args, arg_flags, local_arg_flags)
# Define log levels
if args.vv:
logging.getLogger().setLevel(logging.DEBUG)
elif args.v:
logging.getLogger().setLevel(logging.INFO)
return config