Reqman4
A complete rewrite of reqman. It's a prototype/poc ! Don't know yet if it will replace the original, but I wanted to have a new/cleaner/simpler version, with all good ideas from the original.
MAJOR REASONS: This prototype is more python based for vars & tests, and can display html in http-verb's doc (to be able to make human readable html reports). Syntax is simpler/cleaner (to be able to have a json-schema to valid yml/rml). And debugging is simpler. Switch mechanism is simpler (and no more trouble with defaults, coz the first switch is selected by default). Reqman conf is now "reqman.yml".
Currently, the package provide a rq command (but will be reqman in the future)
Here is the JSON SCHEMA of the new scenario (DSL)).
Major technical differences :
- licence gnu gpl v2 -> MIT
- "uv" & (a lot) simpler (less features)
- use httpx !
- options are inverted (--i -> -i & (switch) -dev --> --dev)
- step operator is always in uppercase (SET, CALL, 'VERB-HTTP' ).
- reqman.conf -> reqman.yml, renamed !
- switch mechanism based on "--key" in reqman.yml / scenars ... first one will be the default
- scenars(*.yml) & reqman.yml are yaml/dict only !
- scenars must(/can for compat) have a "RUN:" section (others keys are the global env)
- tests are simple python statements
- no break!
- no if
- no more .BEGIN/.END
- no more RMR
- no more comparison side by side
- no more XML testing (may change)
- no more junit.xml output (may change)
Here is a valid scenario, which give you an overview : scenario.yml
If you use uvx, you cant test this scenario in your context :
uvx reqman4 https://raw.githubusercontent.com/manatlan/reqman4/refs/heads/main/scenario.yml -o
It will open an html report in your default browser, and you can easily check what's going ...
From github
to test command line
uvx --from git+https://github.com/manatlan/reqman4 rq --help
to run a scenario
uvx --from git+https://github.com/manatlan/reqman4 rq scenario.yml -o
From pypi
to test command line
uvx reqman4 --help
to run a scenario with a local scenario
uvx reqman4 scenario.yml -o
For jules
This project use "uv":
- use "uv sync --dev" to setup the ".venv"
- use "uv run pytest" to validate all unittests
reqman4 built with nuitka
To test, create file cmdline.py
from src.reqman4 import main
if __name__=="__main__":
main.command()
and in console:
uv pip install nuitka
uv run nuitka cmdline.py
it will produce a executable cmdline.bin, which works !
Majors changes from reqman3
If you come from reqman v3
rename reqman.conf to reqman.yml
now, the conf is in an yml file
translate "switchs"
...
switchs:
env1:
doc: test the env 1
root: http://localhost
...
to
...
--env1:
doc: test the env 1
root: http://localhost
...
It's simpler, clearer ... and the first one will be auto-selected (if nos supplied) as the default one !
everything in <<var>> or {{var}} is python3 evaluated
no more "own substitution language" ... everything is python3
...
- GET: /path?var=<<value|method>>
doc: test
...
to
...
- GET: /path?var=<<method(value)>>
doc: test
...
tests are python3 evaluated
no more "own test language" ... everything is python3
...
- GET: /path
tests:
- json.value: "toto"
...
to
...
- GET: /path
tests:
- R.json.value == "toto"
...
R is always the last http response.
"call" is now "CALL"
todo ...
no more "save" in http or call
use a new step SET, like that
...
- GET: /path
tests:
- R.json.value == "toto"
- SET:
saved_value: <<R.json.value>>
...
Metadata
Release files for reqman4 0.5.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| reqman4-0.5.7.tar.gz | 18.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| reqman4-0.5.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.5 kB
Release files / reqman4-0.5.7.tar.gz
| Download URL | reqman4-0.5.7.tar.gz |
|---|---|
| Size | 18.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5a360bab13c18ad0b5326c92e095366c7551309f58f815bcff88574da7398308
|
|
BLAKE2b-256 checksum How to use checksums |
828ad1417fd27e9107a047f958d71c690cc0aa9bb341b8990571e44f911008fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2025.
Transparency logRelease files / reqman4-0.5.7-py3-none-any.whl
| Download URL | reqman4-0.5.7-py3-none-any.whl |
|---|---|
| Size | 23.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
436eaf49bfad2be116a7fff064d277a01194e96d350c931d5977f396636d017f
|
|
BLAKE2b-256 checksum How to use checksums |
990ce40c0f1173be129231c17b42079a90e05bfa571f67673df17e8ee3c570b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2025.
Transparency log