Let’s build your first server!
Some prerequisites:
- Be sure to run
pip3 install flask
in the terminal to ensure that flask is installed
Let’s build a webserver:
You are tasked to build a webserver (called webserver.py) that has three endpoints:
- If someone goes to
http://localhost:5000/
, the server returns the string-
<h1>Hello!</h1><p>Congrats on building your own server!</p><br /></br /><a href="/page2">Go to the next page</a>
-
- If someone goes to
http://localhost:5000/page2
the server should return the string:-
<h1>This is page 2!</h1><p>let us move to page three</p><br /></br /><a href="/page3">Go to the next page</a>
-
- If someone goes to
http://localhost:5000/page3
the server should return the string:-
<h1>This is page 3!</h1><p>And of end of our journey!</p>
-
Please be sure to return the responses listed exactly as shown. If not then the unit tests will not function correctly.
How to test:
-
- Please run the following commands in your terminal to install the requests package to your Python installation.
-
pip3 install requests pip3 install pytest
- Requests is a python library that makes making HTTP requests (e.g. when you type “http://www.facebook.com”, you are making an http request) from within Python easier. We will be using this library a lot in this class, so this unit test is an introduction to the package.a
- Pytest is a functional testing framework that’s popularly used in industry. It also eliminates the need to write classes in order to write tests.
-
- Please save the below file as
test_webserver.py
and run the following unit test using the commandpytest test_webserver.py
-
import requests def test_home(): page = requests.get('http://localhost:5000') true_content = '<h1>Hello!</h1><p>Congrats on building your own server!' +\ '</p><br /></br /><a href="/page2">Go to the next page</a>' assert str(page.text) == true_content def test_page2(): page = requests.get('http://localhost:5000/page2') true_content = '<h1>This is page 2!</h1><p>let us move to page three</p>' +\ '<br /></br /><a href="/page3">Go to the next page</a>' assert str(page.text) == true_content def test_page3(): page = requests.get('http://localhost:5000/page3') true_content = '<h1>This is page 3!</h1><p>And of end of our journey!</p>' assert str(page.text) == true_content
- When it all passes your are done! The unit test is sending HTTP requests to your server and determining if it is returning the right content.
-
- Please run the following commands in your terminal to install the requests package to your Python installation.