Skip to content

Commit 7967ad2

Browse files
committed
Added some tests and app is almost done
1 parent cc3e21d commit 7967ad2

File tree

10 files changed

+87
-13
lines changed

10 files changed

+87
-13
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
from flask import Flask, render_template, request, redirect, url_for
2+
from forms import FormToReverse
3+
4+
# Creating instances
5+
app = Flask(__name__)
6+
app.config.from_object('config')
7+
8+
9+
def reverse(string):
10+
return string[::-1]
11+
12+
13+
@app.route('/', methods=['GET', 'POST'])
14+
def index():
15+
form = FormToReverse(request.form)
16+
if request.method == 'POST' and form.validate_on_submit():
17+
return redirect()
18+
return render_template('', error=error)
19+
20+
@app.route('/reversed')
21+
def rev_str(user_input):
22+
rev_string = reverse(user_input)
23+
return render_template('',user_input=user_input, rev_input=rev_input)
24+
25+
@app.errorhandler(404)
26+
def page_not_found(error):
27+
return render_template(''),404
28+
29+
@app.errorhandler(500)
30+
def server_error(error):
31+
return render_template(''),500
32+
33+
@app.errorhandler(403)
34+
def access_forbidden(error):
35+
return render_template(''),403
36+
37+
38+
if __name__=='__main__':
39+
app.run(debug=True)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
2+
3+
WTF_CSRF_ENABLED = True
4+
SECRET_KEY = "You know what"
5+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from flask_wtf import Form
2+
from wtforms import StringField
3+
from wtforms.validators import DataRequired, Length
4+
5+
class FormToReverse(Form):
6+
string = StringField('reverse', validators=[DataRequired(), Length=(min=4)])
7+
8+

part2/reverse_flask_reza/project/templates/403.html

Whitespace-only changes.

part2/reverse_flask_reza/project/templates/404.html

Whitespace-only changes.

part2/reverse_flask_reza/project/templates/500.html

Whitespace-only changes.

part2/reverse_flask_reza/project/views.py

-13
This file was deleted.

part2/reverse_flask_reza/run.py

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from project import app
2+
3+
if __name__=="__main__":
4+
app.run(debug=True)

part2/reverse_flask_reza/test.py

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import unittest
2+
from project import app
3+
4+
class ReverseTest(unittest.TestCase):
5+
6+
def setup(self):
7+
app.config['WTF_CSRF_ENABLED'] = False
8+
self.app = app.test_client()
9+
10+
def test_if_user_can_access_the_first_page(self):
11+
response = self.app.get('/')
12+
self.assertEqual(response.status_code, 200)
13+
self.assertIn(b'', response.data)
14+
15+
def test_if_page_redirects_and_string_is_reversed(self):
16+
test_string = 'Hello'
17+
response = self.app.post('/', data=dict(reverse=test_string, follow_redirects=True))
18+
self.assertIn(b'olleH',response.data)
19+
20+
21+
def test_prompt_the_user_to_input_string(self):
22+
response = self.app.post('/', data=dict(reverse='', follow_redirects=True))
23+
self.assertIn(b'This field is required', response.data)
24+
25+
def test_prompt_the_user_to_input_atleast_two_lettered_string(self):
26+
response = self.app.post('/', data=dict(reverse='h', follow_redirects=True))
27+
self.assertIn(b'This field is required', response.data)
28+
29+
30+
31+

0 commit comments

Comments
 (0)