mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-04 12:22:47 +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