from app import app from flask.testing import FlaskClient import pytest import os @pytest.fixture(scope="module") def test_client() -> FlaskClient: """ Test that required environment variables are set ahead of runtime """ os.environ['CONFIG_TYPE'] = 'config.TestingConfig' with app.test_client() as testing_client: with app.app_context(): yield testing_client def test_homepage(test_client: FlaskClient): """ Tests that the main homepage loads correctly once the '/' endpoint is hit """ response = test_client.get('/') assert response.status_code == 302 response = test_client.get('/products') assert response.status_code == 308 def test_products(test_client: FlaskClient): """ Tests that a product page is displayed when hitting one of the product endpoints """ response = test_client.get('/products/2') assert response.status_code == 200 response = test_client.get('/products/50') assert response.status_code == 302 response = test_client.get('/products/Books') assert response.status_code == 200