From 796e2ee7fd0f700a878c8d9544d01f22496200ae Mon Sep 17 00:00:00 2001 From: Mike Terzo Date: Mon, 20 Mar 2017 19:00:38 -0400 Subject: [PATCH 1/3] Upgrade to new versions of flask and dependencies --- requirements.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/requirements.txt b/requirements.txt index a095b09..0f51820 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,9 @@ -Flask >=0.10.1 -Flask-WTF >=0.12,<=0.13 -Jinja2 >=2.7.2 +Flask >=0.12 +Flask-WTF >=0.14.2 +Jinja2 >=2.9.5 MarkupSafe >=0.19 -WTForms >=2.0,<3.0 -Werkzeug >=0.7,<= 0.11.5 +WTForms >=2.1 +Werkzeug >=0.12.1 itsdangerous >=0.23 pypuppetdb >=0.3.2 -requests >=2.6.0 +requests >=2.13.0 From cdedf945065ffb3aaec806478dd755b8a243400d Mon Sep 17 00:00:00 2001 From: Mike Terzo Date: Mon, 20 Mar 2017 19:02:00 -0400 Subject: [PATCH 2/3] Remove 204-NoContent, Flask, and Werkzeug no longer provide public apis to add additional error code exception handling. --- puppetboard/app.py | 21 --------------------- test/test_app_error.py | 6 ------ test/test_utils.py | 14 -------------- 3 files changed, 41 deletions(-) diff --git a/puppetboard/app.py b/puppetboard/app.py index 9dfe18a..fc45f1c 100644 --- a/puppetboard/app.py +++ b/puppetboard/app.py @@ -17,7 +17,6 @@ from flask import ( ) from pypuppetdb import connect -from pypuppetdb.errors import EmptyResponseError from pypuppetdb.QueryBuilder import * from puppetboard.forms import (CatalogForm, QueryForm) @@ -119,26 +118,6 @@ def utility_processor(): return dict(now=now) -# -# 204 doesn't have a mapping in werkzeug, we need to define a custom -# class and then set it to the mappings. -# -class NoContent(ex.HTTPException): - code = 204 - description = '

No content Date: Mon, 20 Mar 2017 19:32:17 -0400 Subject: [PATCH 3/3] Updating Forms to the new FlaskForm class name --- puppetboard/forms.py | 6 +++--- test/test_form.py | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 test/test_form.py diff --git a/puppetboard/forms.py b/puppetboard/forms.py index 7628be0..72f0aba 100644 --- a/puppetboard/forms.py +++ b/puppetboard/forms.py @@ -1,14 +1,14 @@ from __future__ import unicode_literals from __future__ import absolute_import -from flask.ext.wtf import Form +from flask_wtf import FlaskForm from wtforms import ( HiddenField, RadioField, SelectField, TextAreaField, BooleanField, validators ) -class QueryForm(Form): +class QueryForm(FlaskForm): """The form used to allow freeform queries to be executed against PuppetDB.""" query = TextAreaField('Query', [validators.Required( @@ -30,7 +30,7 @@ class QueryForm(Form): rawjson = BooleanField('Raw JSON') -class CatalogForm(Form): +class CatalogForm(FlaskForm): """The form used to compare the catalogs of different nodes.""" compare = HiddenField('compare') against = SelectField('against') diff --git a/test/test_form.py b/test/test_form.py new file mode 100644 index 0000000..35286f5 --- /dev/null +++ b/test/test_form.py @@ -0,0 +1,12 @@ +import pytest +from puppetboard import app, forms + + +def test_form_valid(capsys): + for form in [forms.QueryForm, forms.CatalogForm]: + with app.app.test_request_context(): + qf = form() + out, err = capsys.readouterr() + assert qf is not None + assert err == "" + assert out == ""