mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-06-15 02:20:40 +00:00
Add test package for socketio form submission
This commit is contained in:
5
app/test/__init__.py
Normal file
5
app/test/__init__.py
Normal file
@ -0,0 +1,5 @@
|
||||
from flask import Blueprint
|
||||
|
||||
|
||||
test = Blueprint('test', __name__)
|
||||
from . import events, views
|
24
app/test/events.py
Normal file
24
app/test/events.py
Normal file
@ -0,0 +1,24 @@
|
||||
from app import logger, socketio
|
||||
from flask_login import login_required
|
||||
from werkzeug.datastructures import FileStorage
|
||||
from werkzeug.utils import secure_filename
|
||||
from .forms import TestForm
|
||||
import io
|
||||
|
||||
|
||||
@socketio.on('submit-test-form')
|
||||
@login_required
|
||||
def recv_test_form(data):
|
||||
filename = secure_filename(data['file']['name'])
|
||||
stream = io.BytesIO(data['file']['bytes'])
|
||||
file = FileStorage(stream=stream, filename=filename)
|
||||
data['file'] = file
|
||||
test_form = TestForm(data=data)
|
||||
if test_form.validate():
|
||||
logger.warning('test_form is ok!')
|
||||
socketio.emit('submit-test-form', {'status': 'success',
|
||||
'msg': 'test_form is ok!'})
|
||||
else:
|
||||
logger.warning('test_form is not ok!')
|
||||
socketio.emit('submit-test-form', {'status': 'error',
|
||||
'msg': test_form.errors})
|
12
app/test/forms.py
Normal file
12
app/test/forms.py
Normal file
@ -0,0 +1,12 @@
|
||||
from flask_wtf import FlaskForm
|
||||
from flask_wtf.file import FileAllowed, FileField, FileRequired
|
||||
from wtforms import StringField, SubmitField
|
||||
from wtforms.validators import DataRequired, Length
|
||||
|
||||
|
||||
class TestForm(FlaskForm):
|
||||
description = StringField('Description',
|
||||
validators=[DataRequired(), Length(1, 255)])
|
||||
file = FileField('File', validators=[FileAllowed(['txt'], 'Plain text only!'), FileRequired()])
|
||||
submit = SubmitField()
|
||||
title = StringField('Title', validators=[DataRequired(), Length(1, 32)])
|
12
app/test/views.py
Normal file
12
app/test/views.py
Normal file
@ -0,0 +1,12 @@
|
||||
from flask import render_template
|
||||
from flask_login import login_required
|
||||
from . import test
|
||||
from .forms import TestForm
|
||||
|
||||
|
||||
@test.route('/')
|
||||
@login_required
|
||||
def index():
|
||||
test_form = TestForm()
|
||||
return render_template('test/index.html.j2', title='Test',
|
||||
test_form=test_form)
|
Reference in New Issue
Block a user