Skip to content

haondt/athena

Folders and files

NameName
Last commit message
Last commit date

Latest commit

32c5084 · Nov 1, 2024

History

90 Commits
Nov 1, 2024
Sep 1, 2024
Nov 1, 2024
Sep 1, 2024
Jun 29, 2024
Jun 29, 2024
Jun 14, 2024
Jun 14, 2024
Sep 12, 2024
Jun 15, 2024
Sep 1, 2024
Aug 31, 2024
Sep 1, 2024

Repository files navigation

athena

PYPI - Version GitHub release (latest by date)

athena is a file-based rest api client.

$ pip install haondt-athena
$ athena init
$ cat << EOF > athena/hello.py
from athena.client import Athena

def run(athena: Athena):
    client = athena.client()
    client.get('http://echo.jsontest.com/key/value')
EOF
$ athena responses athena/hello.py
hello •
│ execution
│ │ environment: __default__
│
│ timings
│ │ http://echo...m/key/value    ························ 470ms
│
│ traces
│ │ http://echo.jsontest.com/key/value
│ │ │ │ GET http://echo.jsontest.com/key/value
│ │ │ │ 200 OK 470ms
│ │ │
│ │ │ response
│ │ │ │ headers
│ │ │ │ │ Access-Control-Allow-Origin | *
│ │ │ │ │ Content-Type                | application/json
│ │ │ │ │ X-Cloud-Trace-Context       | 35b9c247eaaa4175c1949b97dd13548a
│ │ │ │ │ Date                        | Fri, 05 Jul 2024 20:33:16 GMT
│ │ │ │ │ Server                      | Google Frontend
│ │ │ │ │ Content-Length              | 17
│ │ │ │
│ │ │ │ body | application/json [json] 17B
│ │ │ │ │ 1 {
│ │ │ │ │ 2   "key": "value"
│ │ │ │ │ 3 }
│ │ │ │ │
│ │ │ │
│ │ │
│ │
│

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://docs.haondt.dev/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

About

a file-based rest api client

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages