O-Lang Resolver Test Suite
Language-agnostic conformance and certification tests for O-Lang resolvers.
O-Lang resolvers are executable contracts: small, deterministic units that perform actions described in O-Lang.
This test suite ensures that resolvers behave consistently, predictably, and safely across all programming languages that understand JSON.
TL;DR
- One contract
- One test suite
- Any programming language
- Deterministic, auditable resolvers
If your resolver passes these tests, it is O-Lang compliant.
What This Test Suite Does
The O-Lang Resolver Test Suite validates that a resolver:
- Declares required metadata (
resolverName,version) - Exposes a valid
resolve(input)entry point - Accepts structured JSON input
- Returns a strictly shaped response:
{ "output": ... }or{ "error": ... }
- Fails explicitly and predictably
- Behaves deterministically (same input → same output)
The same tests apply whether your resolver is written in:
- Python
- JavaScript (Node.js)
- Go
- Rust
- Java
- Or any language capable of JSON I/O
Why This Exists
Most systems don’t fail because of syntax errors.
They fail because contracts are unclear.
Without resolver conformance testing:
- Every resolver invents its own response format
- Error handling becomes inconsistent
- Cross-language execution breaks silently
- Tooling cannot reason about behavior
O-Lang solves this by enforcing resolver contracts with a shared, language-agnostic test suite.
Documentation & Guide
For a full walkthrough covering:
- Resolver contracts
- Test philosophy
- Python and JavaScript examples
- Cross-language guarantees
Read the official Medium article:
👉 How to Test O-Lang Resolvers in Python and JavaScript
https://medium.com/@o-lang/how-to-test-o-lang-resolvers-in-python-and-javascript-07e6fab4385f
Typical Resolver Structure
resolver-your-action/
├── resolver.py # or index.js, main.go, etc.
├── resolver.json
└── tests/
├── R-005-resolver-metadata-contract.json
├── R-006-resolver-runtime-shape.json
├── R-007-resolver-failure-contract.json
└── ...
Metadata
Release files for olang-resolver-test 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| olang_resolver_test-0.1.5.tar.gz | 8.0 kB | Without provenance | Details for olang_resolver_test-0.1.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| olang_resolver_test-0.1.5-py3-none-any.whl | Python 3 | none | any | Details for olang_resolver_test-0.1.5-py3-none-any.whl |
Total release size: 16.5 kB
Release files / olang_resolver_test-0.1.5.tar.gz
| Download URL | olang_resolver_test-0.1.5.tar.gz |
|---|---|
| Size | 8.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
18cc049fd7b2ca40d2a7ef4e842f9c6ffccd6c546f5d774561e2f7523a848c5b
|
|
BLAKE2b-256 checksum How to use checksums |
2159b81a7cf09322b589af44bdace09ede68e74e500a53f22af2e99d3ee9a7a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.6
|
Release files / olang_resolver_test-0.1.5-py3-none-any.whl
| Download URL | olang_resolver_test-0.1.5-py3-none-any.whl |
|---|---|
| Size | 8.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
381ede34f86ab055267efd3471029a050d0279787cf9eb97e4f970e1a86ce096
|
|
BLAKE2b-256 checksum How to use checksums |
ec06a674eca97cce1c057b0a449ca2d8b7eafe61b48c66be997395a2094032d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.6
|
Security for olang-resolver-test 0.1.5
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.