diff --git a/src/humulus/recipes.py b/src/humulus/recipes.py index 97d0978..00cc7d4 100644 --- a/src/humulus/recipes.py +++ b/src/humulus/recipes.py @@ -16,7 +16,8 @@ from decimal import Decimal -from flask import Blueprint, flash, redirect, render_template, request, url_for +from flask import (Blueprint, flash, redirect, render_template, jsonify, + request, url_for) from flask_wtf import FlaskForm from wtforms import (Form, StringField, DecimalField, TextAreaField, FieldList, FormField, SelectField) @@ -223,6 +224,16 @@ def info(id): return render_template('recipes/info.html', recipe=get_doc_or_404(id)) +@bp.route('/info//json') +def info_json(id): + recipe = get_doc_or_404(id) + # Remove fields specific not intended for export + recipe.pop('_id') + recipe.pop('_rev') + recipe.pop('$type') + return jsonify(recipe) + + @bp.route('/delete/', methods=('POST',)) @login_required def delete(id): diff --git a/src/humulus/templates/recipes/info.html b/src/humulus/templates/recipes/info.html index 28df021..13252ba 100644 --- a/src/humulus/templates/recipes/info.html +++ b/src/humulus/templates/recipes/info.html @@ -173,5 +173,6 @@ {{ render_delete_modal(url_for('recipes.delete', id=recipe._id), 'deleteRecipe', recipe.name) }} {% endif %} -
Recipe revision: {{ recipe._rev }}
+ +
Recipe revision: {{ recipe._rev }}
{% endblock %} diff --git a/tests/test_recipes.py b/tests/test_recipes.py index d5ec43e..0760379 100644 --- a/tests/test_recipes.py +++ b/tests/test_recipes.py @@ -168,6 +168,19 @@ def test_info(client): assert b'Awesome Lager' in response.data +def test_info_json(client): + """Test success in retrieving a JSON recipe.""" + # Validate 404 + response = client.get('/recipes/info/thisdoesnotexist/json') + assert response.status_code == 404 + + # Validate response for existing doc + response = client.get('/recipes/info/awesome-lager/json') + assert response.status_code == 200 + assert response.is_json + assert response.get_json()['name'] == 'Awesome Lager' + + def test_yeast_form_doc(app): """Evaluates conditionals in generation of doc from a yeast form.""" yeast = YeastForm()