From 6d47c011170db8092f7242dea8804404f823c02d Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Fri, 4 Dec 2015 17:10:06 +0000 Subject: [PATCH] 109526520: Implememt verify post method. --- app/main/views/verify.py | 14 ++++++++++++-- tests/app/main/views/test_verify.py | 25 +++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/app/main/views/verify.py b/app/main/views/verify.py index ed4ef3bfb..1abfda53e 100644 --- a/app/main/views/verify.py +++ b/app/main/views/verify.py @@ -1,6 +1,7 @@ from app.main import main -from flask import render_template, redirect, jsonify +from flask import render_template, redirect, jsonify, session +from app.main.encryption import checkpw from app.main.forms import VerifyForm @@ -14,6 +15,15 @@ def process_verify(): form = VerifyForm() if form.validate_on_submit(): - return redirect('/add-service') + valid_sms = checkpw(form.sms_code.data, session['sms_code']) + valid_email = checkpw(form.email_code.data, session['email_code']) + if valid_sms == False: + return jsonify(sms_code='invalid'), 400 + if valid_email == False: + return jsonify(email_code='invalid'), 400 else: return jsonify(form.errors), 400 + + return redirect('/add-service') + + diff --git a/tests/app/main/views/test_verify.py b/tests/app/main/views/test_verify.py index c3b994ad4..2e2119668 100644 --- a/tests/app/main/views/test_verify.py +++ b/tests/app/main/views/test_verify.py @@ -1,3 +1,4 @@ +from app.main.encryption import hashpw def test_should_return_verify_template(notifications_admin, notifications_admin_db): @@ -5,3 +6,27 @@ def test_should_return_verify_template(notifications_admin, notifications_admin_ assert response.status_code == 200 assert 'Activate your account' in response.get_data(as_text=True) + + +def test_should_redirect_to_add_service_when_code_are_correct(notifications_admin, notifications_admin_db): + with notifications_admin.test_client() as client: + with client.session_transaction() as session: + session['sms_code'] = hashpw('12345') + session['email_code'] = hashpw('23456') + response = client.post('/verify', + data={'sms_code': '12345', + 'email_code': '23456'}) + assert response.status_code == 302 + assert response.location == 'http://localhost/add-service' + + +def test_should_return_400_when_sms_code_is_wrong(notifications_admin, notifications_admin_db): + with notifications_admin.test_client() as client: + with client.session_transaction() as session: + session['sms_code'] = hashpw('12345') + session['email_code'] = hashpw('23456') + response = client.post('/verify', + data={'sms_code': '98765', + 'email_code': '23456'}) + assert response.status_code == 400 + assert 'sms_code' in response.get_data(as_text=True)