a file-based rest api client
Project description
athena
athena is a file-based rest api client.
$ pip install haondt-athena
$ athena init
$ cat << EOF > athena/hello.py
from athena.client import Athena
from athena.test import athert
def run(athena: Athena):
client = athena.client()
response = client.get('https://example.com')
athert(response.status_code).equals(200)
EOF
$ athena run athena/hello.py
hello: passed
athena provides a lightweight alternative to full-blown api platforms like Postman with a few key advantages:
- You are free to use any text editor you would like as the api client. Lightweight editors like Neovim or VSCode allow for a much thinner client.
- As the workbook is just a collection of plaintext files, you can keep it in the same git repo as the project it is testing.
- Since requests are just python modules, you can script to your hearts content, and leverage external python libraries.
Installation
athena can be installed as a pypi package or from source. athena requires python>=3.11.
# from pypi
python3 -m pip install haondt-athena
# from gitlab
python3 -m pip install haondt-athena --index-url https://gitlab.com/api/v4/projects/57154225/packages/pypi/simple
# from source
git clone https://gitlab.com/haondt/athena.git
python3 -m pip install .
Usage
Quickstart guide and API / CLI reference available here: https://haondt.gitlab.io/docs/athena/
Development
Running Tests
How to run the E2E tests
- build docker images for the api echo server and for the test runner images
./tests/e2e/build_dockerfile.sh
- start both images to run the tests
./tests/e2e/run_tests.sh
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
haondt_athena-2.4.0.tar.gz
(36.3 kB
view hashes)
Built Distribution
Close
Hashes for haondt_athena-2.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9966d943cc0c3a11ce48a3fd8f9ac7ff79012a02dac260b0ffac212231d961b7 |
|
MD5 | 071ad93ade6338943dce35ae420afe53 |
|
BLAKE2b-256 | e5fe070f6f8b1198a92b9d26a2cb81568bc699869e550b39612abf5ddb425fab |