lineartest 0.4.4

Last updated:

0 purchases

lineartest 0.4.4 Image
lineartest 0.4.4 Images
Add to Cart

Description:

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.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.