Skip to main content

a file-based rest api client

Project description

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.14.

# 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

Setting up dev env

Ensure you have just installed, and run

just install

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


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-5.1.2.tar.gz (45.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

haondt_athena-5.1.2-py3-none-any.whl (37.4 kB view details)

Uploaded Python 3

File details

Details for the file haondt_athena-5.1.2.tar.gz.

File metadata

  • Download URL: haondt_athena-5.1.2.tar.gz
  • Upload date:
  • Size: 45.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for haondt_athena-5.1.2.tar.gz
Algorithm Hash digest
SHA256 f01954d9141dc2c0ac2ce2ec85def7590522f78a63de75a79971bad4d5834575
MD5 2162b5b820871d15fc51567e780209c5
BLAKE2b-256 05b87adc95cb5027a8a8381b0cc18f235c16d6ca84d833f5b4b6cd77467e4a5e

See more details on using hashes here.

File details

Details for the file haondt_athena-5.1.2-py3-none-any.whl.

File metadata

  • Download URL: haondt_athena-5.1.2-py3-none-any.whl
  • Upload date:
  • Size: 37.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for haondt_athena-5.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 57c5ab9cda9c37989b805c59e1b0964810001fa055c2f3da077512c5b66f211a
MD5 6b3e5b688fa5a8c33a13acf8cce39bcc
BLAKE2b-256 b5463ef825dd3feae57ca1dff1096213e65f184ec06c38adfdafafb33cd05161

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page