Last updated:
0 purchases
lineartest 0.4.4
LinearTest
A testing framework working with Starlette TestClient.
Source code: https://github.com/fanyf22/lineartest/
Documentation: https://fanyf22.github.io/lineartest/
Dependencies
python = "^3.10"
pydantic = "^2.6.4"
pyyaml = "^6.0.1"
httpx = "^0.27.0"
Installing
The package is published on https://pypi.org/lineartest.
Use pip or similar commands to install it:
pip install lineartest
Features
lineartest.schedule helps you run tests one-by-one in order, and the tests run later can retrieve the results from the tests run earlier.
lineartest.client helps you log the detail of a request and the response easily.
Example
from pydantic import BaseModel
from starlette.testclient import TestClient
from lineartest import LinearClient, schedule
# import your ASGI app here for testing
...
test_client = TestClient(app)
client = LinearClient(test_client)
# add `test_login` function to schedule
@schedule
def test_login(username, password):
class Response(BaseModel):
success: bool
token: str
# the parameters are the same as `TestClient`
res = client.post('/login', data={
'username': username,
'password': password
}, model=Response) # use `model` parameter to specify a response model
assert res.success
return res.token # the result will be stored by `schedule`
# add `test_resource` function to schedule
@schedule
def test_resource():
# use `schedule.get` to retrieve history result
token = schedule.get(test_login)
class Response(BaseModel):
success: bool
res = client.get('/', headers={
'Authorization': f'Bearer {token}'
}, model=Response)
assert res.success
# run the schedule
# you may pass positional or keyword arguments
schedule.run('username', password='password')
License
This project is licensed under the terms of the MIT License.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.