Testing your Inspira application
If you are new to Inspira, please start by reading the Getting Started with Inspira guide.
Getting started
Execute the following commands to install Inspira and create the project directories:
$ mkdir testing_app
$ cd testing_app
$ python -m venv .venv
$ source .venv/bin/activate
$ pip install inspira
$ inspira init && inspira new controller greeting
Install Dependencies
Use the command below to install the required packages pytest
and pytest-asyncio
:
$ pip install pytest pytest-asyncio
Test Directory Setup
In the tests
directory, create a new file named test_controller.py
and include the following content:
import pytest
from inspira.testclient import TestClient
from main import app
client = TestClient(app)
@pytest.mark.asyncio
async def test_index_returns_valid_json_response():
response = await client.get("/greetings")
expected = {"variable": "value"}
assert response.json() == expected
@pytest.mark.asyncio
async def test_index_returns_200_status_code():
response = await client.get("/greetings")
assert response.status_code == 200
@pytest.mark.asyncio
async def test_nonexistent_endpoint_returns_404():
response = await client.get("/nonexistent")
assert response.status_code == 404
Here, a TestClient
is initialized with the Inspira
application, and test functions follow the pytest
convention by starting with test_
.
Summary
Congratulations! You have successfully navigated through the Inspira test tutorial, learning how to leverage the powerful testing capabilities provided by the TestClient.
The code is available on GitHub
Happy coding and testing!