Skip to content
Snippets Groups Projects
Commit 9b9b88a4 authored by Sascha Herzinger's avatar Sascha Herzinger
Browse files

setting up forms

parent 834d6df3
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -5,17 +5,15 @@ Modules in this package:
"""
from flask import Flask
from fractalis.celery import make_celery
from fractalis.session import RedisSessionInterface
from fractalis.analytics.controllers import analytics_blueprint
app = Flask(__name__)
app.config.from_object('fractalis.config')
celery_app = make_celery(app)
# app.config.from_envvar('FRACTALIS_CONFIG')
app.session_interface = RedisSessionInterface(app.config)
app.register_blueprint(analytics_blueprint, url_prefix='/analytics')
if __name__ == '__main__':
app.config.from_envvar('FRACTALIS_CONFIG')
app.run()
import json
import uuid
from flask import Blueprint
from flask import Blueprint, abort
import fractalis.analytics.scripts # noqa
from fractalis.celery import app
from fractalis.analytics.form import POSTAnalyticsForm
import fractalis.analytics.scripts
from fractalis import celery_app
analytics_blueprint = Blueprint('analytics_blueprint', __name__)
def get_celery_task(task):
celery_task = eval('fractalis.analytics.scripts.{}'.format(task))
return celery_task
task = eval('fractalis.analytics.scripts.{}'.format(task))
return task
@analytics_blueprint.route('', methods=['POST'])
def create_job():
body = json.dumps({'job_id': str(uuid.uuid4())})
return body, 201
form = POSTAnalyticsForm()
if not form.validate():
abort(400)
@analytics_blueprint.route('/<uuid:job_id>', methods=['GET'])
......
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired
class POSTAnalyticsForm(FlaskForm):
task = StringField('task', validators=[DataRequired()])
from time import sleep
from fractalis import celery_app
from fractalis.celery import app
@celery_app.task
@app.task
def add(a, b):
return a + b
@celery_app.task
@app.task
def do_nothing(time):
sleep(time)
@celery_app.task
@app.task
def div(a, b):
return a / b
......@@ -18,11 +18,7 @@ def get_scripts_packages():
packages.append(package)
return packages
def make_celery(app):
celery = Celery(app.import_name,
backend=app.config['CELERY_RESULT_BACKEND'],
broker=app.config['CELERY_BROKER_URL'])
celery.conf.update(app.config)
celery.autodiscover_tasks(packages=get_scripts_packages())
return celery
app = Celery(__name__)
app.config_from_object('fractalis.config')
# app.config_from_envvar('FRACTALIS_CONFIG')
app.autodiscover_tasks(packages=get_scripts_packages())
......@@ -25,7 +25,7 @@ class RedisSessionInterface(SecureCookieSessionInterface):
"""
def __init__(self, app_config):
self.redis = StrictRedis(host=app_config['REDIS_HOSTNAME'],
self.redis = StrictRedis(host=app_config['REDIS_HOST'],
port=app_config['REDIS_PORT'])
def open_session(self, app, request):
......@@ -55,6 +55,7 @@ class RedisSessionInterface(SecureCookieSessionInterface):
expires=expiration_times['cookies'], httponly=True,
domain=domain)
# TODO: change seconds to timedelta
def get_expiration_times(self, app, session):
"""Get dictionary that contains redis session and cookie expiration
times in the correct format.
......
......@@ -8,6 +8,7 @@ setup(
packages=find_packages(),
install_requires=[
'Flask',
'Flask-WTF',
'celery[redis]',
'redis'
],
......
......@@ -20,7 +20,7 @@ class TestSession(object):
@pytest.fixture(scope='module')
def redis(self, app):
redis = StrictRedis(host=app.config['REDIS_HOSTNAME'],
redis = StrictRedis(host=app.config['REDIS_HOST'],
port=app.config['REDIS_PORT'])
return redis
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment